Spring boot学习笔记之二:SpringBoot项目属性配置
上节我们创建了一个spring boot的第一个项目,在SpringBoot项目中有个application.properties项目配置文件,打开是空白 里面可以配置项目相关的一些配置,编辑的时候IDEA会自动提示,Eclipse可能需要按alt+/ 提示出来。配置属性有很多,我这里只使用了部分属性,接下来我们主要讲一下关于spring boot的属性配置的一些使用。
1. 修改tomcat端口和访问路径
上一讲tomcat默认端口8080 默认路径是根目录/
我们现在改成 端口8888 以及上下文路径/HelloWorld,我们在application.properties中写入
改完后保存,重新启动SpringbootDemoApplication类,我们还是去访问上节中的controller但是这个时候我们需要在页面输入:http://localhost:8888/HelloWorld/hello
结果出来了
这样我们就修改了默认的访问端口及访问路径
2 .SpringBoot自定义属性
上边我们使用的是SpringBoot提供的一些属性配置,我们也可以自定义一些属性我们在application.properties中加一个自定义一个helloWorld属性,属性值为:Spring Boot hello worldserver.port=8888 server.context-path=/HelloWorld helloWorld=Spring Boot hello world我们controller中新建一个HelloWorldController2对其进行使用自定义属性 package com.jd.controller; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * 使用自定义属性 */ @RestController //组合注解==>返回json数据,等同于@ReponseBody与@Controller public class HelloWorldController2 { //通过Value注解注入 application.properties中定义的属性 @Value("${helloWorld}") private String helloWorld; @RequestMapping("/hello2") public String say(){ return helloWorld; } }
我们重启SpringbootDemoApplication类,因为我们之前设置了端口号和访问路径,所以接下来的访问页面输入:http://localhost:8888/HelloWorld/hello2
看,结果是我们自定义的属性可以访问到了!!假如我们要配置一个类别下的多个属性,比如mysql的jdbc连接配置mysql.jdbcName=com.mysql.jdbc.Drivermysql.dbUrl=jdbc:mysql://localhost:3306/db_diarymysql.userName=rootmysql.password=123456我们贴到application.properties(这里自行复制过去即可,不演示了)然后按照前面的方案,我们在Controller(新建HelloWorldController3)里写四个属性;package com.jd.controller;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 使用自定义属性
*/
@RestController //组合注解==>返回json数据,等同于@ReponseBody与@Controller
public class HelloWorldController3 {
@Value("${helloWorld}")
private String helloWorld;
@Value("${mysql.jdbcName}")
private String jdbcName;
@Value("${mysql.dbUrl}")
private String dbUrl;
@Value("${mysql.userName}")
private String userName;
@Value("${mysql.password}")
private String password;
@RequestMapping("/showJdbc")
public String showJdbc(){
return "mysql.jdbcName:"+jdbcName+"<br/>"
+"mysql.dbUrl:"+dbUrl+"<br/>"
+"mysql.userName:"+userName+"<br/>"
+"mysql.password:"+password;
}
}重启启动类,页面输入:http://localhost:8888/HelloWorld/showJdbc
虽然也可以访问的到,假如属性很多 要写一大串 假如多个地方使用 每个地方都得写这么多 不可取 下面我们介绍@ConfigurationProperties注解的配置方式新建一个properties包,新建一个MysqlPropertity类 把所有属性都配置上去我们分析我们数据库的配置都是以mysql.XXX来配置的,我们执行前缀是msyql
我们可以使用@Component作为组件 方便其他地方注入,接下来是代码演示,简化在com.jd包下新键一个propertities包,新建一个MysqlProperties类package com.jd.propertities; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; /** * Created by Administrator on 2018/6/24. */ @ConfigurationProperties(prefix = "mysql") //这个表示前缀为mysql的自定义属性 @Component public class MysqlPropertity { /** * 属性为mysql.XXX,后面的后缀,注意变量名和配置文件中一致 */ private String jdbcName; private String dbUrl; private String userName; private String password; public String getJdbcName() { return jdbcName; } public void setJdbcName(String jdbcName) { this.jdbcName = jdbcName; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getDbUrl() { return dbUrl; } public void setDbUrl(String dbUrl) { this.dbUrl = dbUrl; } }需要引入依赖到pom.xml<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency>再Controller(新建HelloWorldController4)中使用package com.jd.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * 使用自定义属性 */ @RestController public class HelloWorldController4 { @Autowired //通过注解直接注入进来,我们便可以使用 private MysqlProperties mysqlProperties; @RequestMapping("/showJdbc2") public String showJdbc(){ return "mysql.jdbcName:"+mysqlProperties.getJdbcName()+"<br/>" +"mysql.dbUrl:"+mysqlProperties.getDbUrl()+"<br/>" +"mysql.userName:"+mysqlProperties.getUserName()+"<br/>" +"mysql.password:"+mysqlProperties.getPassword(); } }
只需要定义MysqlProperties即可 方便很多 运行结果和之前一样,代码量大大减少
其他文章推荐:https://www.geek-share.com/detail/2710440057.html
阅读更多
- Spring Boot学习笔记-项目属性的简单配置
- spring boot 学习笔记(二):项目属性配置
- 携程 Apollo 配置中心 | 学习笔记(三) 自定义Spring Boot项目通过配置中心启动项目
- Spring boot 学习笔记(1)——hello world创建,属性application.properties、 yml配置
- Spring Boot学习笔记-自定义配置
- Spring 学习笔记 4. 尚硅谷_佟刚_Spring_属性配置细节
- springboot学习笔记-2 一些常用的配置以及整合mybatis
- Spring Boot 2--项目属性配置案例
- springboot-项目属性配置
- SpringBoot学习笔记——项目属性配置
- SpringBoot学习笔记(四) SpringBoot Web相关的自动配置
- Spring4 学习笔记(4)-Spring 属性配置的一些细节
- SpringBoot学习笔记-Eclipse创建SpringBoot项目
- [原创]java WEB学习笔记99:Spring学习---Spring Bean配置:自动装配,配置bean之间的关系(继承/依赖),bean的作用域(singleton,prototype,web环境作用域),使用外部属性文件
- Spring-Boot学习笔记(二) 配置文件之初步使用
- springboot学习笔记2(拦截器,redis,授权登录,读取yml配置文件)
- Spring Boot 学习笔记(五) 配置Servlet容器
- [原创]java WEB学习笔记98:Spring学习---Spring Bean配置及相关细节:如何在配置bean,Spring容器(BeanFactory,ApplicationContext),如何获取bean,属性赋值(属性注入,构造器注入),配置bean细节(字面值,包含特殊字符,引用bean,null值,集合属性list map propert),util 和p 命名空间
- SpringBoot学习笔记(3) Spring Boot 运行原理,自动配置
- [原创]java WEB学习笔记103:Spring学习---Spring Bean配置:基于注解的方式(基于注解配置bean,基于注解来装配bean的属性)