SpringBoot入门练习

开发
今天给大家带来SpringBoot入门练习的一些方法

一、创建项目出现的问题

  1. 问题1、application.yml文件无法识别 
  2.     *解决方法:File->Settions->Plugins目录下    选中YAML,重启IDEA问题2、application.yml文件图标错误 
  3.     *解决方法:File->Settings->File Types下    删除*.yml 

二、创建一个SpringBoot的项目

1 New Project
2 选择Spring Initializr
3 选择Web下的Web,然后Flish
4 导入依赖

  1. <!--SpringBoot起步依赖--> 
  2. <parent> 
  3.    <groupId>org.springframework.boot</groupId> 
  4.    <artifactId>spring-boot-starter-parent</artifactId> 
  5.    <version>2.1.5.RELEASE</version> 
  6. </parent> 
  7. <dependencies> 
  8.    <!--web功能的起步依赖:SpringBoot集成SpringMVC进行Controller开发--> 
  9.    <dependency> 
  10.        <groupId>org.springframework.boot</groupId> 
  11.        <artifactId>spring-boot-starter-web</artifactId> 
  12.    </dependency> 
  13.    <!--热部署--> 
  14.    <dependency> 
  15.        <groupId>org.springframework.boot</groupId> 
  16.        <artifactId>spring-boot-devtools</artifactId> 
  17.    </dependency> 
  18. </dependencies> 

IDEA设置,完成热部署

在Settings中找到Compiler,选中Build Project automatically
按Ctrl+Shift+Alt+/:选中compiler.automake.allow.when.app.running

底层分析:

  1. spring-boot-starter-parent:springboot起步依赖 
  2.     在spring-boot-starter-parent中    resources资源引入:        ${basedir}/src/main/resources下的            application*.yml            application*.yaml            application*.properties文件    在spring-boot-dependencies中        自动根据spring-boot-starter-parent的版本匹配相应的版本,进行了版本控制的作用    自动配置分析:    @SpringBootApplication        标志该类是一个配置类:@Configration 

三、SpringBoot整合Mybatis

第1步:导依赖:

 

  1. <!--mybatis起步依赖--> 
  2. <dependency> 
  3.     <groupId>org.mybatis.spring.boot</groupId> 
  4.     <artifactId>mybatis-spring-boot-starter</artifactId> 
  5.     <version>2.0.1</version> 
  6. </dependency> 
  7. <!--MySQL依赖--> 
  8. <dependency> 
  9.     <groupId>mysql</groupId> 
  10.     <artifactId>mysql-connector-java</artifactId> 
  11.     <version>5.1.6</version> 
  12. </dependency> 

 

第2步:yml配置文件

数据库配置spring:
配置Mybatis配置信息
spring集成Mybatis环境
pojo别名扫描包

  1. spring: 
  2. datasource: 
  3. driver-class-name: com.mysql.jdbc.Driver 
  4. url: jdbc:mysql://localhost:3306/springboot?useUnicode=true&characterEncoding=UTF-8&useSSL=false 
  5. username: root 
  6. password: 123456 
  7. mybatis: 
  8.     type-aliases-package: com.zero.domain 
  9.     mapper-locations: classpath:mapper/*Mapper.xml 

第3步:创建实体

  1. package com.zero.domain; 
  2. public class User { 
  3.     private Integer id; 
  4.     private String name
  5.     private String pass; 
  6.     public Integer getId() { 
  7.         return id; 
  8.     }    public void setId(Integer id) { 
  9.         this.id = id; 
  10.     }    public String getName() { 
  11.         return name
  12.     }    public void setName(String name) { 
  13.         this.name = name
  14.     }    public String getPass() { 
  15.         return pass; 
  16.     }    public void setPass(String pass) { 
  17.         this.pass = pass; 
  18.     }    @Override 
  19.     public String toString() { 
  20.         return "User{" + 
  21.             "id=" + id + 
  22.             ", name='" + name + '\'' + 
  23.             ", pass='" + pass + '\'' + 
  24.             '}'
  25.         }    } 

第4步:创建接口

  1. package com.zero.mapper; 
  2. import com.zero.domain.User
  3. import org.apache.ibatis.annotations.Mapper; 
  4. import java.util.List; 
  5. @Mapper 
  6. public interface UserMapper { 
  7.     public List<User> queryUserList(); 

第5步:创建映射文件

  1. <?xml version="1.0" encoding="utf-8" ?> 
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
  3.     "http://mybatis.org/dtd/mybatis-3-mapper.dtd"
  4. <mapper namespace="com.zero.mapper.UserMapper"
  5.     <select id="queryUserList" resultType="user"
  6.         SELECT * FROM demo    </select
  7. </mapper> 

第6步:测试

  1. package com.zero.controller; 
  2. import com.zero.domain.User
  3. import com.zero.mapper.UserMapper; 
  4. import org.springframework.beans.factory.annotation.Autowired; 
  5. import org.springframework.web.bind.annotation.RequestMapping; 
  6. import org.springframework.web.bind.annotation.RestController; 
  7. import java.util.List; 
  8. //以json格式或字符串格式回写 
  9. @RestController 
  10. public class democontroller { 
  11.     @Autowired 
  12.     private UserMapper userMapper; 
  13.     @RequestMapping("/quick"
  14.     public List<User> queryUserList(){ 
  15.         List<User> users = userMapper.queryUserList(); 
  16.         return users; 
  17.     } 

四、SpringBoot整合Spring Data JPA
第1步:导入依赖

  1. <!--spring-data-jpa--> 
  2. <dependency> 
  3.     <groupId>org.springframework.boot</groupId> 
  4.     <artifactId>spring-boot-starter-data-jpa</artifactId> 
  5. </dependency> 
  6. <!--Mysql驱动--> 
  7. <dependency> 
  8.     <groupId>mysql</groupId> 
  9.     <artifactId>mysql-connector-java</artifactId> 
  10.     <version>5.1.6</version> 
  11. </dependency> 
  12. <!--jdk9需要导入--> 
  13. <dependency> 
  14.     <groupId>javax.xml.bind</groupId> 
  15.     <artifactId>jaxb-api</artifactId> 
  16.     <version>2.3.0</version> 
  17. </dependency> 

第2步:创建实体,使用注解进行配置

  1. package com.zero.domain; 
  2. import javax.persistence.Entity; 
  3. import javax.persistence.GeneratedValue; 
  4. import javax.persistence.GenerationType; 
  5. import javax.persistence.Id; 
  6. @Entity 
  7. public class User { 
  8. @Id 
  9. @GeneratedValue(strategy = GenerationType.IDENTITY) 
  10. private Integer id; 
  11. private String name
  12. private String pass; 
  13. public Integer getId() { 
  14.     return id; 
  15. }public void setId(Integer id) { 
  16.     this.id = id; 
  17. }public String getName() { 
  18.     return name
  19. }public void setName(String name) { 
  20.     this.name = name
  21. }public String getPass() { 
  22.     return pass; 
  23. }public void setPass(String pass) { 
  24.     this.pass = pass; 
  25. }@Override 
  26. public String toString() { 
  27.     return "User{" + 
  28.             "id=" + id + 
  29.             ", name='" + name + '\'' + 
  30.             ", pass='" + pass + '\'' + 
  31.             '}'
  32. }} 

第3步:创建接口

  1. package com.zero.reposytory; 
  2. import com.zero.domain.User
  3. import org.springframework.data.jpa.repository.JpaRepository; 
  4. import java.util.List; 
  5. public interface UserReposytory extends JpaRepository<User,Integer> { 
  6.     public List<User> findAll(); 

第4步:创建yml配置

  1. spring: 
  2.     datasource: 
  3.         driver-class-name: com.mysql.jdbc.Driver 
  4.         url: jdbc:mysql://localhost:3306/springboot?useUnicode=true&characterEncoding=UTF-8&useSSL=false 
  5.         username: root 
  6.         password: 123456 
  7. #JPA Configuration 
  8.     jpa: 
  9.         database: MySQL 
  10.         show-sql: true 
  11.         generate-ddl: true 
  12.         hibernate: 
  13.             ddl-auto: update 

第5步:测试

  1. package com.zero; 
  2. import com.zero.domain.User
  3. import com.zero.reposytory.UserReposytory; 
  4. import org.junit.Test; 
  5. import org.junit.runner.RunWith; 
  6. import org.springframework.beans.factory.annotation.Autowired; 
  7. import org.springframework.boot.test.context.SpringBootTest; 
  8. import org.springframework.test.context.junit4.SpringRunner; 
  9. import java.util.List; 
  10. @RunWith(SpringRunner.class) 
  11. @SpringBootTest(classes = Demo614Application.class) 
  12. public class JpaTest { 
  13.     @Autowired 
  14.     private UserReposytory userReposytory; 
  15.     @Test 
  16.     public void test(){ 
  17.         List<Userall = userReposytory.findAll();        System.out.println(all); 
  18.     }} 

五、Redis缓存
第1步:配置yml文件信息

  1. #redis 
  2. redis: 
  3.     host: 127.0.0.1 
  4.     port: 6379 

第2步:测试

package com.zero;

  1. import com.fasterxml.jackson.core.JsonProcessingException; 
  2. import com.fasterxml.jackson.databind.ObjectMapper; 
  3. import com.zero.domain.User
  4. import com.zero.reposytory.UserReposytory; 
  5. import org.junit.Test; 
  6. import org.junit.runner.RunWith; 
  7. import org.springframework.beans.factory.annotation.Autowired; 
  8. import org.springframework.boot.test.context.SpringBootTest; 
  9. import org.springframework.data.redis.core.RedisTemplate; 
  10. import org.springframework.test.context.junit4.SpringRunner; 
  11. import java.util.List; 
  12. @RunWith(SpringRunner.class) 
  13. @SpringBootTest(classes = Demo614Application.class) 
  14. public class RedisTest { 
  15.     @Autowired 
  16.     private RedisTemplate<String,String> redisTemplate; 
  17.     @Autowired 
  18.     private UserReposytory userReposytory; 
  19.     @Test 
  20.     public void test() throws JsonProcessingException { 
  21.         //1.从Redis中获取数据,json字符串 
  22.         String s = redisTemplate.boundValueOps("user.findall").get(); 
  23.         //2.判断Redis中是否存在想要的数据 
  24.         if(null==s){ 
  25.             //3.1:不存在,从数据库中查询 
  26.             List<Userall = userReposytory.findAll(); 
  27.             //3.2:将查询出的数据存储到Redis中 
  28.             //通过web先将集合换换成json的字符串,使用Jackson进行转换 
  29.             ObjectMapper ob = new ObjectMapper(); 
  30.             s = ob.writeValueAsString(all); 
  31.             redisTemplate.boundValueOps("user.findall").set(s); 
  32.             System.out.println("从数据库中获取数据"); 
  33.         }else { 
  34.             System.out.println("从Redis缓存中获取数据"); 
  35.         } 
  36.         //4.将数据打印在控制台 
  37.         System.out.println(s); 
  38.     } 

 

 

责任编辑:姜华 来源: 今日头条
相关推荐

2017-09-12 10:26:47

springbootmaven结构

2021-04-07 08:43:09

SpringBootRocketMQ开发技术

2024-08-27 09:09:49

Web系统JSP

2017-08-10 10:28:43

SpringBootSpring

2023-10-13 08:23:05

2020-12-24 08:07:18

SpringBootSpring SecuWeb

2021-01-19 12:33:32

鸿蒙HarmonyOS应用开发

2021-06-28 07:13:33

进阶Vim笔记

2021-01-19 10:09:02

鸿蒙HarmonyOS应用

2009-08-03 18:46:38

Silverlight

2019-12-06 09:30:55

curl命令Linux

2021-10-19 09:59:25

二分法排序数组

2021-03-29 10:10:15

Linuxgrep

2011-06-14 16:33:21

Android视频教程

2020-09-23 10:24:45

数据库SQL技术

2023-09-08 09:10:33

SpringBoot微服务架构

2017-08-17 08:59:40

磁盘RAIDShell

2024-09-29 00:00:02

2011-02-28 13:34:51

SpringMVC

2012-11-05 10:33:40

IBMdw
点赞
收藏

51CTO技术栈公众号