1.SpringBoot 高级用法
1.1 为属性赋值操作
1.1.1 业务需要阐明
阐明: 当程序中呈现了频繁变动的数据时,如果采纳人为的形式进行批改并且编译打包则导致代码的耦合性较高.不便于保护.所以是否为属性动静赋值.
1.1.2 对于YML文件阐明
# YML文件语法 # 1. key:(空格) value # 2. key与key之间有层级缩进关系server: port: 8090# 属性赋值操作,编辑属性时留神前缀. 只有springboot启动该数据就会被写入内存中 key-value格局redis: host: 192.168.126.130 port: 6379
1.1.3 为属性赋值操作
//动静获取ip和端口数据//@ResponseBody 作用1: 将对象转化为JSON 作用2: 如果返回值是String类型,则返回字符串自身// 作用3: 个别客户端发动ajax申请时,采纳该注解返回数据, 将不会执行视图解析器操作@RestControllerpublic class RedisController { @Value("${redis.host}") //spel表达式 private String host; //="192.168.126.129"; @Value("${redis.port}") private Integer port; //=6379; //指定yml文件进行赋值@RequestMapping("/getMsg")public String getMsg(){ return host+":"+port;}
1.2 指定配置文件为属性赋值
阐明: 因为YML配置文件中的数据个别都是零碎级别的数据,所以个别的业务数据都会写到properties的配置文件中.
1.2.2 编辑RedisController
//动静获取ip和端口数据//@ResponseBody 作用1: 将对象转化为JSON 作用2: 如果返回值是String类型,则返回字符串自身// 作用3: 个别客户端发动ajax申请时,采纳该注解返回数据, 将不会执行视图解析器操作@RestController//动静的导入pro配置文件,交给spring容器进行加载.@PropertySource("classpath:/properties/redis.properties")public class RedisController { @Value("${redis.host}") //spel表达式 private String host; //="192.168.126.129"; @Value("${redis.port}") private Integer port; //=6379; @Value("${pro.redis.host}") private String proHost; @Value("${pro.redis.port}") private String proPort; //指定yml文件进行赋值 @RequestMapping("/getMsg") public String getMsg(){ return host+":"+port; } //指定properties文件进行赋值 @RequestMapping("/getProp") public String getProp(){ return proHost+":"+proPort; }}
1.3 环境切换
业务阐明:因为开发时都是链接公司本人的数据库/服务器等.把这个环境称之为"开发环境."
当开发实现之后须要进行上线部署,则须要链接"生产环境"
如果频繁的切换环境,则导致我的项目因为批改谬误,导致问题的产生.
我的项目优化: 是否提供一种策略.简化上述操作的开发过程.
#第一份配置文件,用来指定默认的环境标识spring: profiles: active: dev---# YML文件语法# 1. key:(空格) value# 2. key与key之间有层级的缩进关系.#指定环境的名称spring: profiles: dev# YML文件语法 # 1. key:(空格) value # 2. key与key之间有层级缩进关系server: port: 8090# 属性赋值操作,编辑属性时留神前缀. 只有springboot启动该数据就会被写入内存中 key-value格局redis: host: 192.168.126.130 port: 6379#宰割符号将环境一分为二---spring: profiles: prodserver: port: 9000#属性赋值操作redis: host: 111.122.122.122 port: 7000
1.4 对于lombok阐明
1.4.1 增加jar包
1.4.3 问题
阐明:如果须要应用lombok工具就必须提前装置插件.如果在上线的时候Linux零碎中,是否须要提前装置lombok插件?? 不须要装置.
起因: lombok插件在编译器无效. 将.java文件编译为.class文件时lombok会动静的增加get/set/toString…等办法.增加到.class文件中.
Linux上线部署时运行的时.jar文件 .jar蕴含的文件(.class文件)
1.4.4 小结
1.属性赋值的操作 @Value("${}")
2.动静导入资源文件 @PropertySource(“classpath:/properties/redis.properties”)
3.环境的切换 —, spring.profiles: dev ,默认的选项
4.lombok罕用操作
2.SpringBoot整合Mybatis
2.1导入jt.sql的数据库
2.2.1 筹备数据库工具
2.2.2 链接数据库
2.2.3 增加jar包文件
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.4.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.jt</groupId> <artifactId>springboot_demo2_mybatis</artifactId> <version>0.0.1-SNAPSHOT</version> <name>springboot_demo2_mybatis</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> <!--引入数据库驱动 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <!--springBoot数据库连贯 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <!--spring整合mybatis 临时 --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.2</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build></project>
2.2.4 编辑POJO对象
@Data@Accessors(chain = true)public class User implements Serializable { private Integer id; private String name; private Integer age; private String sex;}
2.2.5 编辑 YML文件
server: port: 8090 servlet: context-path: /spring: datasource: #driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/jtdb?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true username: root password: rootmybatis: type-aliases-package: com.jt.pojo mapper-locations: classpath:/mybatis/mappers/*.xml #开启驼峰映射 configuration: map-underscore-to-camel-case: true
2.2.6 编辑UserDao接口
@Mapperpublic interface UserDao { List<User> findObject();}
2.2.7 编辑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.jt.dao.UserDao"> <select id="findObject" resultType="com.jt.pojo.User"> select * from user </select></mapper>
2.2.8 编辑测试类
@SpringBootTestclass SpringbootDemo2MybatisApplicationTests { @Autowired private UserDao userDao; @Test void findAll() { List<User> list = userDao.findObject(); System.out.println(list); }}