spring boot
SpringBoot提供了一种快速使用Spring的方式,基于约定优于配置的思想,可以让开发人员不必在配置与逻辑业务之间进行思维的切换,全身心的投入到逻辑业务的代码编写中,从而大大提高了开发的效率。
SpringBoot具有自动配置、起步依赖、辅助功能的作用
注意:Spring Boot 并不是对 Spring 功能上的增强,而是提供了一种快速使用 Spring 的方式。
1、如何快速搭建一个SpringBoot工程
- 创建Maven项目
- 导入SpringBoot起步依赖
- 这里必须要添加这个parent这个父类,由于springboot要与springcloud一起使用,两者的版本要保持一致
-
1 <!--springboot工程需要继承的父工程--> 2 <parent> 3 <groupId>org.springframework.boot</groupId> 4 <artifactId>spring-boot-starter-parent</artifactId> 5 <version>2.1.8.RELEASE</version> 6 </parent> 7 8 <dependencies> 9 <!--web开发的起步依赖--> 10 <dependency> 11 <groupId>org.springframework.boot</groupId> 12 <artifactId>spring-boot-starter-web</artifactId> 13 </dependency> 14 </dependencies>
- 编写引导类
- 引导类需要加@SpringBootApplication这样的注解
-
1 /** 2 * 引导类。 SpringBoot项目的入口 3 */ 4 @SpringBootApplication 5 public class HelloApplication { 6 7 public static void main(String[] args) { 8 SpringApplication.run(HelloApplication.class,args); 9 } 10 }
- 编写配置文件(application.yml)
- 1 server: #指定tomcat端口号以及ip地址 2 port: 8080 3 address: 127.0.0.1
- 定义Controller
注意:此时运行项目,就可以了,因为SpringBoot内部内置了tomcat服务器
2、SpringBoot配置-配置文件分类
SpringBoot是基于约定的,所以很多配置都有默认值,但如果想使用自己的配置替换默认配置的话,就可以使用application.properties或者application.yml(application.yaml)进行配置。
- 默认配置文件名称:application
- 统计目录下的优先级为 properties>yml>yaml
基本语法:
- 大小写敏感
- 数据前边必须有空格,作为分隔符
- 缩进时不允许使用tab键(idea中可以使用),只允许使用空格
- 相同层级的元素左侧对齐
- #表示注释,从字符一直到行尾,都会被解析器忽略
数据格式:
- 对象(map)键值对的集合
- person:
- name:张三
- 数组 一组按次序排列的值
- address
- - 北金
- - 南宋
- 纯量 单个不可再分的值
- msg:"hello world" # 双引识别转义字符
- msg:'hello world' # 单引忽略转义字符
获取配置文件中的数据3种方式:
- @Value
-
#获取对象属性
private String name2;
@Value("${person.name}") -
#获取数组
@Value("${address[0]}")
private String address1;
-
- Evironment
- 注入Evironment对象,通过getProperty获取值
- @Autowired
private Environment env; System.out.println(env.getProperty("person.name"));
- 定义实体类,类的上方要加@ConfigurationProperties注解,且需要有前缀 prfix
-
@Component
@ConfigurationProperties(prefix = "person")
public class Person {private String name;
private int age;
private String[] address;}
-
3、SpringBoot配置-profile
profile是用来完成不同环境下,配置动态切换功能的
- 多profile文件方式:提供多个配置文件,每个代表一种环境,在application文件中指定激活的配置,spring.profiles.active=dev
- application-dev.properties/yml 开发环境
- application-test.properties/yml 测试环境
- application-pro.properties/yml 生产环境
- yml多文档方式
- 将每种开发环境之间用--- 3个-分割,每个配置都需要指定
spring:
最后指定需要激活的配置 spring.profiles.active=dev
profiles: pro 这样的指定
- 将每种开发环境之间用--- 3个-分割,每个配置都需要指定
- profile激活方式
- 配置文件: 再配置文件中配置:spring.profiles.active=dev
- 虚拟机参数:在VM options 指定:-Dspring.profiles.active=dev
- 命令行参数:java –jar xxx.jar --spring.profiles.active=dev
4、SpringBoot整合Junit
- 搭建SpringBoot工程
- 引入starter-test起步依赖
-
1 <dependencies> 2 <dependency> 3 <groupId>org.springframework.boot</groupId> 4 <artifactId>spring-boot-starter</artifactId> 5 </dependency> 6 7 <dependency> 8 <groupId>org.springframework.boot</groupId> 9 <artifactId>spring-boot-starter-test</artifactId> 10 <scope>test</scope> 11 </dependency> 12 </dependencies>
-
- 编写测试类 测试类上方的注解必须是这样的,第二个注解为启动引导类的字节码文件
-
1 /** 2 * 测试类*/ 3 @RunWith(SpringRunner.class) 4 @SpringBootTest(classes = SpringbootJunitApplication.class ) //这个地方必须是启动类的字节码文件 5 public class UserServiceTest { 6 @Test 7 public void test(){ 8 System.out.println(111); 9 } 10 }
-
5、SpringBoot整合Mybatis
- 搭建SpringBoot工程
- 引入mybatis起步依赖,添加mysql驱动
-
1 <dependencies> 2 <dependency> 3 <groupId>org.mybatis.spring.boot</groupId> 4 <artifactId>mybatis-spring-boot-starter</artifactId> 5 <version>2.1.3</version> 6 </dependency> 7 8 <dependency> 9 <groupId>mysql</groupId> 10 <artifactId>mysql-connector-java</artifactId> 11 <version>5.1.6</version> 12 <scope>runtime</scope> 13 </dependency> 14 15 <dependency> 16 <groupId>org.springframework.boot</groupId> 17 <artifactId>spring-boot-starter-test</artifactId> 18 <scope>test</scope> 19 </dependency> 20 </dependencies>
注意:这里需指定mybatis连接驱动的版本,因为springboot指定的mybatis的版本是8.0以上
-
- 编写DataSource和MyBatis相关的配置
-
1 # datasource 2 spring: 3 profiles: dev 4 datasource: 5 url: jdbc:mysql://192.168.236.129/db5 6 username: root 7 password: ****** 8 driver-class-name: com.mysql.jdbc.Driver 9 10 # mybatis/ 11 mybatis: 12 mapper-locations: classpath:mapper/*Mapper.xml # mapper映射文件路径 13 type-aliases-package: com.itheima.domain 14 # config-location: # 指定mybatis的核心配置文件
-
- 定义实体类
- xml方式 编写dao 和 mapper文件 /纯注解方式.
-
//dao @Mapper @Repository public interface UserXmlMapper { public List<User> findAll(); } //mapper.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.itheima.springbootmybatis.mapper.UserXmlMapper"> <select id="findAll" resultType="user"> select * from t_user </select> </mapper> //纯注解 @Mapper @Repository public interface UserMapper { @Select("select * from t_user") public List<User> findAll(); }
-