什么是springboot
用来简化spring应用的初始搭建以及开发过程 使用特定的方式来进行配置(properties或yml文件)
创建独立的spring引用程序 main方法运行
嵌入的Tomcat 无需部署war文件
简化maven配置
自动配置spring添加对应功能
starter自动化配置
springboot常用的starter有哪些
spring-boot-starter-web 嵌入tomcat和web开发需要servlet与jsp支持
spring-boot-starter-data-jpa 数据库支持
spring-boot-starter-data-redis redis数据库支持
spring-boot-starter-data-solr solr支持
mybatis-spring-boot-starter 第三方的mybatis集成starter
springboot自动配置的原理
在spring程序main方法中 添加@SpringBootApplication或者@EnableAutoConfiguration会自动去maven中读取每个starter中的spring.factories文件 该文件里配置了spring容器中所有需要的bean
springboot读取配置文件的方式
springboot默认读取配置文件为application.properties或者是application.yml
springboot集成mybatis的过程
添加mybatis的starter maven依赖
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.2.0</version>
</dependency>
在mybatis的接口中 添加@Mapper注解
在application.yml配置数据源信息
SpringBoot集成热部署?
把依赖项添加至pom.xml 中
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
</dependency>
重启应用程序,然后就可以了
我们能否在 spring-boot-starter-web 中用 jetty 代替 tomcat?
在 spring-boot-starter-web 移除现有的依赖项,并把下面这些添加进去。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
RequestMapping 和 GetMapping 的不同之处在哪里?
- RequestMapping 具有类属性的,可以进行 GET,POST,PUT 或者其它的注释中具有的请求方法。
- GetMapping 是 GET 请求方法中的一个特例。它只是 ResquestMapping 的一个延伸,目的是为了提高清晰度
自定义属性与加载
自定义属性与加载
在application.properties文件中配置相关属性
com.didispace.blog.name=程序猿DD
com.didispace.blog.title=Spring Boot教程
创建一个文件读取的class类,使用component注释:(把普通pojo实例化到spring容器中)
@Component
public class BlogProperties {
@Value("${com.didispace.blog.name}")
//采用@Value("${前缀}")方式注入属性
private String name;
@Value("${com.didispace.blog.title}")
private String title;
// 省略getter和setter
}
多环境配置
我们在开发Spring Boot应用时,通常同一套程序会被安装到几个不同的环境,比如:开发、测试、生产
等。对于多环境的配置,通过配置多份不同环境的配置文件,再通过打包命令配置不停的环境配置。
在Spring Boot中多环境配置文件名需要满足application-{profile}.properties的格式,其中{profile}对应你的环境标识,比如:
- application-dev.properties:开发环境
- application-test.properties:测试环境
- application-prod.properties:生产环境
至于哪个具体的配置文件会被加载,需要在application.properties
文件中通过spring.profiles.active
属性来设置,其值对应{profile}值。
如:spring.profiles.active=test
就会加载application-test.properties
配置文件内容
SpringBoot是什么
SpringBoot启动类介绍
SpringBoot配置properties/yml
SpringBoot多属性配置
注解
- 配置的注解
- 创建程序的注解
@RestController注解相当于@ResponseBody + @Controller
@RequestMapping 处理请求地址映射。
@PathVariable URL 映射时,用于绑定请求参数到方法参数
@RequestBody 这里注解用于读取请求体 boy 的数据,通过 HttpMessageConverter 解析绑定到对象中
@Service
@Transactional 事务注解
@Autowired 注释,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。
Spring Boot 使用Swagger2构建RESTful API
在pom.xml中加入Swagger2的依赖
创建Swagger2配置类:在Application.java同级创建Swagger2的配置类Swagger2。
多数据源配置
在pom文件中引入jsbc的依赖
在.yml文件中配置数据源配置
Spring Boot 使用Redis
pom引入redis依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-redis</artifactId>
</dependency>
- 在application.properties中加入Redis服务端的相关配置
- 通过自动配置的StringRedisTemplate对象进行Redis的读写操作
springboot-mybatis 工程
- pom 添加 Mybatis 依赖
- 在 application.properties 应用配置文件,增加 Mybatis 相关配置
- 数据操作层接口类添加注解 @Mapper
多数据源的应用场景
<!-- Druid 数据连接池依赖 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>${druid}</version>
</dependency>
Spring Boot中使用@Scheduled创建定时任务
- 在Spring Boot的主类中加入@EnableScheduling注解,启用定时任务的配置
- 创建定时任务实现类
@Component
public class ScheduledTasks {
private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
@Scheduled(fixedRate = 5000)
public void reportCurrentTime() {
System.out.println("现在时间:" + dateFormat.format(new Date()));
}
}
Spring Boot中使用JavaMailSender发送邮件
在Spring Boot的工程中的pom.xml中引入spring-boot-starter-mail依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
application.properties中加入mail相关配置
直接通过@Autowired来引入邮件发送对象。
@Autowired
private JavaMailSender mailSender;
将邮件信息添加到 SimpleMailMessage
对象中调用javaMailSender
Spring Boot使用Redis做集中式缓存
pom.xml中增加redis的依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-redis</artifactId>
</dependency>
application.properties中增加redis配置,
网友评论