SpringBoot的快速开发

一、导入依赖

<!-- 父依赖
引入父依赖后,不会导入jar包,因为父依赖是POM文件
-->
<parent>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-parent</artifactId>
   <version>2.0.0.RELEASE</version>
</parent>

<dependencies>
   <!--web服务依赖 引入web服务依赖后,会把Spring相关包引入
   -->
   <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-web</artifactId>
   </dependency>
   <!--SpringBoot 的 Mybatis 启动器-->
   <dependency>
       <groupId>org.mybatis.spring.boot</groupId>
       <artifactId>mybatis-spring-boot-starter</artifactId>
       <version>1.3.2</version>
   </dependency>
   <dependency>
       <groupId>mysql</groupId>
       <artifactId>mysql-connector-java</artifactId>
   </dependency>
   <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-data-jpa</artifactId>
   </dependency>
   <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-redis -->
   <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-data-redis</artifactId>
   </dependency>
   <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-test</artifactId>
   </dependency>
</dependencies>

二、启动类

/**
* @SpringBootApplication 注解包含三个注解:
* @Configuration 和 @bean注解 创建一个简单的spring配置类 可以替代xml配置文件
* @EnableAutoConfiguration 能够自动配置spring的上下文,试图猜测和配置你想要的bean类,通常会自动根据你的类路径和你的bean定义自动配置
* @ComponentScan 组件扫描,可自动发现和装配一些Bean。会自动扫描指定包下的全部标有@Component的类,并注册成bean,当然包括@Component下的子注解@Service,@Repository,@Controller。
*/
@SpringBootApplication
//当前启动类是配置类

@EnableCaching // 开启缓存
public class SpringBootStart {
   public static void main(String[] args) {
       // 写本类的字节码【为的就是找到启动类上的注解】
       // run方法里面做的事情是初始化Spring框架
       SpringApplication.run(SpringBootStart.class, args);
   }
}

三、Controller

@RestController
@RequestMapping("/user")
public class UserController {

   @Autowired
   private UserService userService;

   @RequestMapping("/findUser/{name}")
   public List<User> findUser(@PathVariable String name) {
       List<User> userList = userService.findName(name);
       return userList;
   }

   @RequestMapping("/findAll")
   public List<User> findAll() {
       List<User> userList = userService.findAll();
       return userList;
   }
}

四、service

@Service
public class UserServiceImpl implements UserService {
   @Autowired
   private UserMapper mapper;

   @Override
   @CacheEvict(value = "userCache", allEntries = true) // @CacheEvict:删除缓存
   // 属性 allEntries 指定是否清空整个缓存区。
   public List<User> findName(String name) {
       System.out.println("Redis is delete");
       return mapper.findByName(name);
   }

   @Override
   @Cacheable(value = "userCache", key = "'user.findAll'") //添加/使用缓存
   // 属性 value 是缓存的名字,在执行的时候,会找叫这个名字的缓存使用/删除
   // 属性 key 默认情况下是空串””,是 Spring 的一种表达式语言 SpEL,我们这里可以随意指定,但是需要注意一定要加单引号
   public List<User> findAll() {
       System.out.println("Data is from mysql");
       return mapper.findAll();
   }
}

五、Mapper

@Mapper // 声明mapper接口
public interface UserMapper {
   @Select("select * from user where name like '%${value}%'")
   List<User> findByName(String name);

   @Select("select * from user")
   List<User> findAll();
}

简单总结

1、SpringBoot有什么用?
用来进行框架整合
使用自动配置、整合依赖、嵌入式的容器。
2、怎么用?
引入SpringBoot提供的依赖,只需要做很少的整合配置
SpringBoot的依赖以 spring-boot-starter 开头
父依赖:spring-boot-starter-parent ,作用:控制引入依赖包的版本
如果不知道依赖怎么写,可以到maven的仓库搜索
maven仓库地址:https://mvnrepository.com

使用总结

1、搭建环境
(1)、创建工程,引入maven依赖
 a> 父依赖:
    <parent>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-parent</artifactId>
 <version>2.0.0.RELEASE</version>
    </parent>
    引入父依赖后,不会导入jar包,因为父依赖是POM文件
b> web服务依赖:
       <dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-web</artifactId>
       </dependency>
       引入web服务依赖后,会把Spring相关包引入
(2)、在包根目录下创建启动类
>在类上使用注解 @SpringBootApplication(重点)
>创建main方法,并在main方法里使用:
SpringApplication.run(SpringBootRunner.class,args);
写本类的字节码【为的就是找到启动类上的注解】
run方法里面做的事情是初始化Spring框架
(3)、运行启动类,测试SpringBoot环境是否搭建成功。看到错误页面就是环境成功了
2、入门代码
创建Controller。加上@RestController注解
声名方法,并配置@RequestMapping()
3、在浏览器测试
4、整合MyBatis
>加入依赖:mybatis-spring-boot-starter
>创建Mapper接口,并写上注解 @Mapper
>在注解 @select 里写SQL语句
>在service增加方法并调用DAO方法
>在controller增加方法并调用service方法
>在浏览器访问
5、整合Redis
>依赖:spring-boot-starter-data-redis 
>在启动类增加开启缓存的注解 @EnableCaching
>在service实现里,找到要使用缓存的方法,在方法上加缓存注解 @Cacheable(value="",key="")
6、整合Junit
>引入依赖 :spring-boot-starter-test
>使用注解 @RunWith(SpringJUnit4ClassRunner.class)
 @SpringBootTest(classes = SpringBootStart.class)
 @SpringBootTest里面写的是启动类。
 为什么要写启动类?【为了拿到整个环境的上下文】

发表评论