
SpringBoot 并不是一门新技术,只是将之前常用的Spring,SpringMVC,data-jpa等常用的框架封装到了一起,帮助你隐藏这些框架的整合细节,实现敏捷开发。
SpringBoot 就是一个工具集。
IDEA 创建 SpringBoot项目。


修改。

Demo 工程目录。

// HelloController.java@RestController@RequestMapping("/test")public class HelloController {@RequestMapping("/hello")public String hello () {return "hello, springboot.";}}
启动的三种方式。

打包,然后使用命令的方式。
java -jar /Users/xx/Desktop/demo1-1.0.0.jar// 测试。浏览器输入,http://localhost:8080/test/hello。
SpringBoot 注解。
@Configuration 相当于 beans 标签。把一个普通类变成一个配置类。
@Bean 相当于 bean 标签。把方法返回对象放到 IOC 容器中。
@SpringBootApplication 是一个组合注解。@SpringBootConfiguration 就是 @Configuration 注解,代表启动类就是一个配置类。@EnableAutoConfiguration 帮助实现自动装配。
// pom.xml<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.12</version></dependency>
// User.java@Data@AllArgsConstructor@NoArgsConstructorpublic class User {private Integer id;private String name;}
// UserConfig.java@Configurationpublic class UserConfig {@Beanpublic User getUser() {return new User(109091, "zs");}}
@RestController@RequestMapping("/test")public class HelloController {@Autowiredprivate User user;@RequestMapping("/showUser")public User showUser() {return user;}}// 测试。浏览器输入,http://localhost:8080/test/showUser。
环境配置和多环境配置。
删除 application.properties 文件。创建application.yml、application-dev.yml、application-test.yml。
// 单环境// application.ymlserver:port: 8089servlet:context-path: /boot// 测试。浏览器输入,http://localhost:8089/boot/test/showUser。
// 多环境切换// application.yml# 设置使用哪一个环境 ,只需要写环境的名称spring:profiles:active: dev// application-dev.ymlserver:port: 8088servlet:context-path: /dev// application-test.ymlserver:port: 8089servlet:context-path: /test// 测试。浏览器输入,http://localhost:8088/dev/test/showUser。
打包,然后使用命令的方式切换。
// 注掉 application.yml 的主配置。#spring:# profiles:# active: dev// 命令java -jar /Users/xx/Desktop/demo1-1.0.0.jar --spring.profiles.active=test// 测试。浏览器输入,http://localhost:8089/test/test/showUser。
@Value 注解。
// application.ymla: textab:c: textb
@RestController@RequestMapping("/test")public class HelloController {@Autowiredprivate User user;@Value("${a}")private String a;@Value("${b.c}")private String b;@RequestMapping("/hello")public String hello () {return "hello, springboot.";}@RequestMapping("/showUser")public User showUser() {return user;}@RequestMapping("/showValue")public String showValue() {// return a;return b;}}
如果在 yml 文件中需要编写大量的自定义配置,并且具有统一的前缀。
// application.ymlali:aa: 1bb: 2cc: 3dd: 4
// AliyunProperties.java@Data@Component@ConfigurationProperties(prefix = "ali")public class AliyunProperties {private String aa;private String bb;private String cc;private String dd;}
@RestController@RequestMapping("/test")public class HelloController {@Autowiredprivate User user;@Value("${a}")private String a;@Value("${b.c}")private String b;@Autowiredprivate AliyunProperties aliyunProperties;@RequestMapping("/hello")public String hello () {return "hello, springboot.";}@RequestMapping("/showUser")public User showUser() {return user;}@RequestMapping("/showValue")public String showValue() {// return a;return b;}@RequestMapping("/pro")public AliyunProperties getAliyunProperties() {return aliyunProperties;}}
热加载。
// pom.xml<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId></dependency><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><fork>true</fork></configuration></plugin>


SpringBoot 整合 Mybatis。
xml 方式。
// pom.xml<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.16</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.1.21</version></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.3.2</version></dependency>
// Air.java@Datapublic class Air implements Serializable {private Integer id;private Integer districtId;private Date monitorTime;private Integer pm10;private Integer pm25;private String monitoringStation;private Date lastModifyTime;}
// District.java@Datapublic class District implements Serializable {private Integer id;private String name;}
// AirMapper.javapublic interface AirMapper {List<Air> queryAll();}
// AirMapper.xml<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.example.demo1.mapper.AirMapper"><select id="queryAll" resultType="Air">select * from air</select></mapper>
// application.ymlspring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql:///dbTest1?serverTimezone=UTCusername: rootpassword: 12345678type: com.alibaba.druid.pool.DruidDataSourcelogging:level:com.example.demo1.mapper: debugmybatis:mapper-locations: classpath:mapper/*.xmltype-aliases-package: com.example.demo1.entityconfiguration:map-underscore-to-camel-case: true
// Demo1Application.java@SpringBootApplication@MapperScan("com.example.demo1.mapper")public class Demo1Application {public static void main(String[] args) {SpringApplication.run(Demo1Application.class, args);}}
// AirMapperTest.java@SpringBootTest@RunWith(SpringRunner.class)public class AirMapperTest {@Autowiredprivate AirMapper airMapper;@Testpublic void queryAll() {List<Air> airs = airMapper.queryAll();for (Air air: airs) {System.out.println(air);}}}
消除 @Autowired 误报警告的方法。

注解方式。
// DistrictMapper.javapublic interface DistrictMapper {@Select("select * from district")List<District> queryAll();@Select("select * from district where id = #{id}")District queryById(Integer id);}
// DistrictMapperTest.java@SpringBootTest@RunWith(SpringRunner.class)public class DistrictMapperTest {@Autowiredprivate DistrictMapper districtMapper;@Testpublic void queryAll() {List<District> list = districtMapper.queryAll();for (District district : list) {System.out.println(district);}}@Testpublic void queryById() {System.out.println(districtMapper.queryById(1));}}
SpringBoot 整合分页。
// pom.xml<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.2.10</version></dependency>
// AirMapperTest.java@SpringBootTest@RunWith(SpringRunner.class)public class AirMapperTest {@Autowiredprivate AirMapper airMapper;@Testpublic void page() {PageHelper.startPage(1,2);List<Air> airs = airMapper.queryAll();PageInfo<Air> pageInfo = new PageInfo<>(airs);List<Air> pageInfoList = pageInfo.getList();for (Air air: pageInfoList) {System.out.println(air);}}}
SpringBoot 整合 JSP。
创建 JSP 页面。
// pom.xml<!--jsp引擎的依赖--><dependency><groupId>org.apache.tomcat.embed</groupId><artifactId>tomcat-embed-jasper</artifactId></dependency><!--jstl依赖--><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId></dependency>
// application.ymlspring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql:///dbTest1?serverTimezone=UTCusername: rootpassword: Liu01234type: com.alibaba.druid.pool.DruidDataSourcemvc:view:prefix: /suffix: .jsp
// JspController.java@Controllerpublic class JspController {@RequestMapping("/show")public String showIndex() {return "index";}}// 测试。http://localhost:8080/show




