第一节:项目内置属性

application.properties配置整个项目的,相当于以前的web.xml;
注意到上一节的访问HelloWorld时,项目路径也没有加;直接是http://localhost:8080/helloWorld;
因为它默认的server.servlet.context-path=/
修改如下:
src/main/resource/application.properties:
server.port=8888
server.servlet.context-path=/HelloWorld

重新启动,输入http://localhost:8888/HelloWorld/helloWorld,页面显示spring boot你好;

1.port端口变成了8888;

2.项目根路径变了,context-path是/HelloWorld了;

第二节:自定义属性

可以在application.properties中配置一些自定义属性:xx.xx也行:

使用@Value("${key}")来注入到属性值中;

server.port=8888
server.servlet.context-path=/HelloWorld helloWorld=spring boot hello! mysql.jdbcName=com.mysql.jdbc.Driver
mysql.dbUrl=jdbc:mysql://localhost:3306/db_root
mysql.userName=root
mysql.password=123456

com.cy.controller.HelloWorldController.java:

package com.cy.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; @RestController
public class HelloWorldController { @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("/helloWorld")
public String say(){
return helloWorld;
} @RequestMapping("/showJdbc")
public String showJdbc(){
return "mysql.jdbcName:"+jdbcName+"<br/>"
+"mysql.dbUrl:"+dbUrl+"<br/>"
+"mysql.userName:"+userName+"<br/>"
+"mysql.password:"+password+"<br/>";
}
}

浏览器http://localhost:8888/HelloWorld/helloWorld,显示:spring boot hello!

浏览器http://localhost:8888/HelloWorld/showJdbc,显示:

mysql.jdbcName:com.mysql.jdbc.Driver
mysql.dbUrl:jdbc:mysql://localhost:3306/db_root
mysql.userName:root
mysql.password:123456

第三节:ConfigurationProperties 配置
上面自定义属性,如果写了很多呢,在多个地方用到,那么还一个一个的写,@Value("${key}"),就很麻烦了。
使用封装。
com.cy.properties.MysqlProperties.java:
package com.cy.properties;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component; /**
* mysql属性配置文件
* @author CY
*
*/
@Component
@ConfigurationProperties(prefix="mysql")
public class MysqlProperties {
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 getDbUrl() {
return dbUrl;
}
public void setDbUrl(String dbUrl) {
this.dbUrl = dbUrl;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
} }

HelloWorldController.java中使用它:

package com.cy.controller;

import javax.annotation.Resource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import com.cy.properties.MysqlProperties; @RestController
public class HelloWorldController { @Resource
private MysqlProperties mysqlProperties; @Value("${helloWorld}")
private String helloWorld; @RequestMapping("/helloWorld")
public String say(){
return helloWorld;
} @RequestMapping("/showJdbc")
public String showJdbc(){
return "mysql.jdbcName:"+mysqlProperties.getJdbcName()+"<br/>"
+"mysql.dbUrl:"+mysqlProperties.getDbUrl()+"<br/>"
+"mysql.userName:"+mysqlProperties.getUserName()+"<br/>"
+"mysql.password:"+mysqlProperties.getPassword()+"<br/>";
}
}

浏览器http://localhost:8888/HelloWorld/showJdbc,显示之前一样;

 
 
 
 
 
 
 

spring boot学习(2) SpringBoot 项目属性配置的更多相关文章

  1. Github点赞超多的Spring Boot学习教程+实战项目推荐!

    Github点赞接近 100k 的Spring Boot学习教程+实战项目推荐!   很明显的一个现象,除了一些老项目,现在 Java 后端项目基本都是基于 Spring Boot 进行开发,毕竟它这 ...

  2. Spring Boot 系列(三)属性配置&自定义属性配置

    在使用spring boot过程中,可以发现项目中只需要极少的配置就能完成相应的功能,这归功于spring boot中的模块化配置,在pom.xml中依赖的每个Starter都有默认配置,而这些默认配 ...

  3. spring boot 学习(十)SpringBoot配置发送Email

    SpringBoot配置发送Email 引入依赖 在 pom.xml 文件中引入邮件配置: <dependency> <groupId>org.springframework. ...

  4. spring boot学习(十三)SpringBoot缓存(EhCache 2.x 篇)

    SpringBoot 缓存(EhCache 2.x 篇) SpringBoot 缓存 在 Spring Boot中,通过@EnableCaching注解自动化配置合适的缓存管理器(CacheManag ...

  5. spring boot 学习(五)SpringBoot+MyBatis(XML)+Druid

    SpringBoot+MyBatis(xml)+Druid 前言 springboot集成了springJDBC与JPA,但是没有集成mybatis,所以想要使用mybatis就要自己去集成. 主要是 ...

  6. SpringBoot项目属性配置-第二章

    SpringBoot入门 1. 相信很多人选择Spring Boot主要是考虑到它既能兼顾Spring的强大功能,还能实现快速开发的便捷.我们在Spring Boot使用过程中,最直观的感受就是没有了 ...

  7. Spring Boot学习记录03_一些属性配置文件

    转自:http://blog.didispace.com/springbootproperties/ 多环境配置(这个地方跟maven的profile配置有点类似) 我们在开发Spring Boot应 ...

  8. spring boot学习(4) SpringBoot 之Spring Data Jpa 支持(1)

    第一节:Spring Data Jpa 简介 Spring-Data-Jpa JPA(Java Persistence API)定义了一系列对象持久化的标准,目前实现这一规范的产品有Hibernate ...

  9. SpringBoot项目属性配置

    如果使用IDEA创建Springboot项目,默认会在resource目录下创建application.properties文件,在SpringBoot项目中,也可以使用yml类型的配置文件代替pro ...

随机推荐

  1. Android系统移植与驱动开发

    21世纪,Android发展非常迅速,在市场上占有很大的比例,遥遥领先与iOS,很大程度上是因为任何人都可以利用Android的源代码定制完全属于自己的嵌入式开发系统,而不需要向Google交一分钱. ...

  2. Swift网络封装库Moya中文手册之Authentication

    Authentication 安全验证可能有点复杂,一些网络请求需要认证,这里我们讨论两种常见的. Basic HTTP Auth HTTP auth是HTTP协议自带的用户名/密码验证.如果你使用的 ...

  3. 【DevExpress v17.2新功能预告】DevExpress ASP.NET Scheduler新的自适应功能

    自适应Web设计可以帮助您解决各种尺寸的屏幕问题,网站的自适应网页设计可帮助您解决用户使用不同大小屏幕显示数据的问题. 在v17.2中,我们最大化了ASP.NET Scheduler的视图和可视化元素 ...

  4. 粗略学习《Agile Guide》后的总结

    碍于个人能力极度欠佳,所以即使我大致了解了一下何谓“Agile Guide”(敏捷开发),也不很能理解其中的软件工程思想,只能大概谈一下我的理解. 我所理解的“敏捷开发”,应该是一种特殊的.相较于传统 ...

  5. Python bool值

    a = 10 print(type(a)) #<class 'int'> d = str(a) #把数字转换成str print(type(d)) #<class 'str'> ...

  6. 常用增强学习实验环境 I (MuJoCo, OpenAI Gym, rllab, DeepMind Lab, TORCS, PySC2) (转载)

    原文地址:http://blog.csdn.net/jinzhuojun/article/details/77144590 和其它的机器学习方向一样,强化学习(Reinforcement Learni ...

  7. 《DSP using MATLAB》Problem 4.15

    只会做前两个, 代码: %% ---------------------------------------------------------------------------- %% Outpu ...

  8. 租酥雨的NOIP2018赛前日记

    租酥雨的NOIP2018赛前日记 离\(\mbox{NOIP2018}\)只剩下不到一个月的时间辣! 想想自己再过一个月就要退役了,觉得有必要把这段时间的一些计划与安排记录下来. 就从国庆收假开始吧. ...

  9. 设置tab标签页 遮挡部分

    效果如下: 主要代码: <div class="need-detail"> <div class="top-title"> <sp ...

  10. 直接new一个对象出来