SpringBoot项目创建与属性赋值说明

1.idea新建springboot项目

2.SpringBoot项目配置说明

2.1SpringBoot Pom.xml文件说明

 1 ##利用parent标签,springboot项目整合了其他框架的包及具体的配置都在parent中进行了定义,定义了版本包信息##
 2     <parent>
 3         <groupId>org.springframework.boot</groupId>
 4         <artifactId>spring-boot-starter-parent</artifactId>
 5         <version>2.3.3.RELEASE</version>
 6         <relativePath/> <!-- lookup parent from repository -->
 7     </parent>
 8     <groupId>com.dz</groupId>
 9     <artifactId>springboot-demo1</artifactId>
10     <version>0.0.1-SNAPSHOT</version>
11     <name>springboot-demo1</name>
12     <description>Demo project for Spring Boot</description>
13 ##当前maven配置信息##
14     <properties>
15         <java.version>1.8</java.version>
16 ##制定maven插件版本##
17         <maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>
18 ##跳过测试类打包##
19         <skipTests>true</skipTests>
20     </properties>
21 
22     <dependencies>
23 ##项目依赖信息##
24 ##Maven:jar包具有依赖性##
25         <dependency>
26             <groupId>org.springframework.boot</groupId>
27             <artifactId>spring-boot-starter-web</artifactId>
28         </dependency>
29 
30         <dependency>
31             <groupId>org.springframework.boot</groupId>
32             <artifactId>spring-boot-starter-test</artifactId>
33             <scope>test</scope>
34             <exclusions>
35                 <exclusion>
36                     <groupId>org.junit.vintage</groupId>
37                     <artifactId>junit-vintage-engine</artifactId>
38                 </exclusion>
39             </exclusions>
40         </dependency>
41     </dependencies>
42 ##maven项目制定的插件配置##
43 ##该插件主要负责maven项目相关操作##
44 ##打包/test/clean/update等相关maven操作##
45 ##注意事项:凡是maven项目则必须添加插件,否则将来项目部署必然出错##
46     <build>
47         <plugins>
48             <plugin>
49                 <groupId>org.springframework.boot</groupId>
50                 <artifactId>spring-boot-maven-plugin</artifactId>
51             </plugin>
52         </plugins>
53     </build>
54 
55 </project>            

2.2 SpringBoot项目如何做到开箱即用的

待补充,..

2.3 配置文件说明

2.3.1 pro文件说明

1 # pro配置文件语法说明
2 #   1.pro文件的结构是key-value结构 
3 #   2.pro文件的值都是字符串结构.  无需添加引号""
4 #   3.key value之间使用=号连接.
5 #    4.springBoot程序中的配置文件 必须有application.pro/yml
6 server.port=8090

2.3.2 关于YML文件说明

 1 # yml配置文件语法
 2 ##  1.key: value   k-v结构使用:号(空格)连接
 3 ##  2.YML配置文件有层级关系.
 4 ##  3.YML配置文件注意缩进.
 5 ##  4.YML文件支持中文.内部编码是utf-8编码
 6 server:
 7   port: 8090
 8   
 9   # 设定项目发布路径  
10   servlet:
11     context-path: /jt    
12     # /代表缺省值目录  

2.3.3 缺省值目录的说明

缺省值为/实际对应的是tomcat服务器中

apache-tomcat中的webapps中的ROOT文件夹

/jt发布目录为apache-tomcat中的webapp中的jt文件夹

访问地址时:http://localhost:8090/jt.

3. SpringBoot属性赋值

3.1 @Value方式赋值

1.编写yml文件

 1     # yml配置文件语法
 2 ##  1.key: value   k-v结构使用:号(空格)连接
 3 ##  2.YML配置文件有层级关系.
 4 ##  3.YML配置文件注意缩进.
 5 ##  4.YML文件支持中文.内部编码是utf-8编码
 6 server:
 7   port: 8090
 8   
 9   # 设定项目发布路径  
10   servlet:
11     context-path: /  
12     # /代表缺省值目录  
13     
14 # 在配置文件中添加属性和属性值,为了防止重名发生,则添加前缀区分
15 jdbc:
16   username: root
17   password: root

2.编写JDBCController实现属性赋值

 1 @RestController //保证返回的数据转化为JSON
 2 public class JDBCController {
 3     
 4     //1.需求:利用YML配置文件的信息为属性赋值
 5     //@Value作用: 从spring容器中找到具体的key,为属性赋值.
 6     @Value("${jdbc.username}") //spel表达式 spring提供
 7     private String username;    //定义数据库用户名
 8     
 9     @Value("${jdbc.password}")
10     private String password;    //定义数据库密码
11     
12     @RequestMapping("/getMsg")
13     public String getMsg() {
14         
15         this.username = "root";
16         this.password = "root";
17         return username+"|"+password;
18     }
19     
20     @RequestMapping("/getMsgValue")
21     public String getMsgValue() {
22         
23         return username+"|"+password;
24     }
25     
26 }

3.2 批量为属性赋值

有时某些配置可能需要很多的属性信息。如果这时利用@Value的方式赋值,则必然导致代码冗余,可读性差

所以需要采用批量赋值的方式

1.添加jar包依赖

1 <!--添加属性注入-->
2         <dependency>
3             <groupId>org.springframework.boot</groupId>
4             <artifactId>spring-boot-configuration-processor</artifactId>
5             <optional>true</optional>
6         </dependency>

2.编辑JDBCController2

 1 @RestController
 2 @ConfigurationProperties(prefix = "jdbc")//定义属性的前缀
 3 public class JDBCController2 {
 4     //批量为属性赋值时,要求配置文件的属性与类中的属性名称必须一致,自动的赋值
 5     private String username;
 6     private String password;
 7     //为属性赋值时,一定会调用对象的set方法
 8     @RequestMapping("/getMsgPrefix")
 9     public String getMsgPrefix(){
10         return username+"|"+password;
11     }
12 
13     public String getUsername() {
14         return username;
15     }
16 
17     public void setUsername(String username) {
18         this.username = username;
19     }
20 
21     public String getPassword() {
22         return password;
23     }
24 
25     public void setPassword(String password) {
26         this.password = password;
27     }
28 }

 3.3 制定文件为属性赋值

YML配置文件是SpringBoot程序的核心文件,在其中添加了整合环境的重要配置

如果有时需要业务数据进行赋值操作时,最好的方式应该采用properties的方式赋值。

1.编写pro配置文件

注意编码为utf-8

文件位置在resources中的properties文件中的jdbc.properties

1 jdbc2.username=root用户名
2 jdbc2.password=root密码

2.编写JDBCController

 1 @RestController//保证返回的数据转化为JSON
 2 @PropertySource(value = "classpath:/properties/jdbc.properties",encoding = "UTF-8")
 3 public class JDBCController {
 4     //利用yml配置文件的信息为属性赋值
 5     //@Value作用:从spring容器中找到具体的key为属性赋值
 6     @Value("${jdbc2.username}")//spel表达式 spring提供
 7     private String username;//定义数据库用户名
 8     @Value("${jdbc2.password}")
 9     private String password;//定义数据库密码
10     @RequestMapping("/getMsg")
11     public String getMsg(){
12         this.username = username;
13         this.password = password;
14         return username+"|"+password;
15     }
16     @RequestMapping("/getMsgValue")
17     public String getMsgValue(){
18         return username+"|"+password;
19     }
20 }

3.4 热部署配置

1 <!--支持热部署 -->
2         <dependency>
3             <groupId>org.springframework.boot</groupId>
4             <artifactId>spring-boot-devtools</artifactId>
5         </dependency>

4. 环境部署问题

4.1 场景

去公司上班,公司分为生产环境和测试环境,平时操作的时候在测试环境运行。

测试环境,端口号8080 用户名=root  密码=root

生产环境,端口号80 用户名=dz 密码=dz

由于工作的需要,需要在两个环境中切换

如何简化操作

4.2 解决思路

公司有多个运行环境,将不同的运行环境进行规划,切换环境的时候,只需要修改环境的名称即可

4.3 编写yml配置文件

 1 #设置环境的默认值
 2 spring:
 3   profiles:
 4     active: test
 5 ---
 6 #yml配置文件语法说明
 7 #   1.yml文件的结构是key: value结构,k-v使用:(空格)连接
 8 #   2.yml配置文件有层级关系
 9 #   3.yml配置文件注意缩进
10 #   4.yml文件支持中文,内部编码是utf-8编码
11 #为环境定义名称
12 spring:
13   profiles: test
14 server:
15   port: 8090
16 #设置项目发布路径
17   servlet:
18     context-path: /JT
19 #context-path: /   代表缺省值目录
20 #在配置文件中添加属性和属性值,为了防止重名发生,添加前缀区分
21 jdbc:
22   username: root
23   password: root
24 ---
25 spring:
26   profiles: prod
27 server:
28   port: 80
29   servlet:
30     context-path: /
31 jdbc:
32   username: dz
33   password: dz

Lombok校验

添加jar包文件

1 <!--引入插件lombok 自动的set/get/构造方法插件  -->
2         <dependency>
3             <groupId>org.projectlombok</groupId>
4             <artifactId>lombok</artifactId>
5         </dependency>

Lombok常用注解

@Data:动态生成get/set/toString

@NoArgsConstructor:动态生成无参构造

@AllArgsConstructor:动态生成全参构造

@Accessors(chain=true):生成链式加载结构

Lombok面试题

问题:通过Lombok可以添加set/get/toString等方法。但是需要运行环境中添加lombok插件才行。如果将来程序在Linux系统中发布,是否需要提前安装Lombok插件

答:不需要,Lombok插件在编译器生效。IDE工具将.java文件编译为.class文件时,lombok插件开始工作,为.class文件动态拼接get/set/yoString等方法,所以程序在linux中运行时,xxx.jar项目(.class)文件,可以直接运行和lombok是否安装无关。

 

posted @ 2020-08-26 21:01  罗晓峥  阅读(525)  评论(0编辑  收藏  举报