接着上面的入门教程,我们来学习下Spring Boot的项目属性配置。

1、配置项目内置属性

属性配置主要是在application.properties文件里配置的(编写时有自动提示)这里我们将server的端口变为8888,路径加上HelloWorld:

在DeomApplication.java的页面时点击运行按钮,打开浏览器输入:http://localhost:8888/HelloWorld/hello

此时,控制台的输出信息也可以看到端口变成8888了:

之前的url已无效:

更改后的URL有效:

2、配置自定义属性

同样也是在application.properties文件编写,内容如下:

接着在HelloWorldController.java中使用@Value注解将自定义属性注入,这样可以直接使用自定义属性了:

运行项目,输入:http://localhost:8888/HelloWorld/hello,浏览器将显示如下结果:

3、ConfigurationProperties 配置

新建一个com.example.properties包,再新建一个MysqlProperties.java类,经测试运行会出错,无法找到该Bean,错误如下:

百度后找到了原因:

SpringBoot项目的Bean装配默认规则是根据Application类所在的包位置从上往下扫描!

如果Application类所在的包为:io.github.gefangshuai.app,则只会扫描io.github.gefangshuai.app包及其所有子包,如果service或dao所在包不在io.github.gefangshuai.app及其子包下,则不会被扫描!

于是将MysqlProperties.java类移动了com.example.demo包下,也就是Application类所在的包,就没报bean找不到的错误了。

MysqlProperties.java用到了2个重要的注解:

1、@Component:把普通pojo实例化到spring容器中,相当于配置文件中的<bean id="" class=""/>

2、@ConfigurationProperties(prefix = "mysql"):将配置类注入到spring容器中,这样可以使用配置类,这里使用了前缀。

编写完成,IDEA会提示改属性有问题,原因是spring-boot-configuration-processor.jar包没有引入,在pom.xml加入如下依赖:

 <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
MysqlProperties.java代码如下(使用Alt+Insert快捷键生成Getter和Setter方法):
 package com.example.demo;

 import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component; /**
* Mysql属性配置
*/
@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;
}
}

 application.properties添加的属性如下:

 mysql.jdbcName=com.mysql.jdbc.Driver
mysql.dbUrl=jdbc:mysql://localhost:3306/db_boot
mysql.userName=root
mysql.password=root

HelloWordController.java的最终代码为:

 package com.example.demo;

 import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; /**
* Created on 2017-9-3.
*/
@Controller
public class HelloWorldController { @Value("${hellWorld}")
private String helloWorld; @Resource
private MysqlProperties mysqlPropertie; @RequestMapping("/hello")
@ResponseBody
public String say(){
return helloWorld;
} @RequestMapping("/showJdbc")
@ResponseBody
public String showJdbc(){
return "mysql.jdbcName" + mysqlPropertie.getJdbcName() +"<br/>"
+ "mysql.dbUrl" + mysqlPropertie.getDbUrl() +"<br/>"
+ "mysql.userName" + mysqlPropertie.getUserName() +"<br/>"
+ "mysql.password" + mysqlPropertie.getPassword() +"<br/>"; } }

运行项目,浏览器输入:http://localhost:8888/showJdbc,正确结果如下:

转载请附上原文链接:http://www.cnblogs.com/stm32stm32/p/7469663.html

Spring Boot项目属性配置的更多相关文章

  1. 寻找写代码感觉(二)之 Spring Boot 项目属性配置

    一.前言 写代码就和恋爱一样,有反馈就要趁热打铁,搞完了项目搭建,接下来就来搞搞项目配置. 二.IDEA设置 1.编码配置 这里所说的就是代码的编码格式,你可以不设置,但是可能要面临的是,很多未知的麻 ...

  2. spring boot 项目属性配置

    一.系统配置文件 1.application.properties是新建springboot项目后默认得配置文件 配置的示例如下 server.port= server.context-path=/g ...

  3. Spring Boot 项目 Maven 配置

    在配置基于Maven的Spring Boot项目的过程中,打包运行出现了一系列错误. 比如: mvn 中没有主清单属性.java.lang.NoClassDefFoundError: org/spri ...

  4. idea下新建Spring Boot项目并配置启动

    一.操作步骤 ①使用idea新建一个Spring Boot项目 ②修改pom.xml ③修改application.properties ④修改编写一个Hello Spring Boot的Contro ...

  5. spring boot项目mybatis配置注解+配置文件

    maven依赖 <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-ja ...

  6. IDEA新建一个Spring Boot项目

    Maven构建项目模板 maven构建的是maven风格的纯净模板,要转变成spring boot项目需要自己添加依赖等配置. mvn archetype:generate: Maven插件原型是一个 ...

  7. spring boot项目遇到 'lower_case_table_names' 的解决办法

    今天自己搭建了spring boot项目,配置的是mysql数据库,启动时报如下错误 Mon Jan 22 23:31:40 CST 2018 WARN: Establishing SSL conne ...

  8. Spring boot项目maven的profile多环境配置不自动替换变量的问题解决

    Spring boot项目maven的profile多环境配置不自动替换变量的问题解决   在网上找了好久,配置都很简单,可是我的程序就是不能自动替换变量,最终单独测试,发现原来是引用spring b ...

  9. 让Spring Boot项目启动时可以根据自定义配置决定初始化哪些Bean

    让Spring Boot项目启动时可以根据自定义配置决定初始化哪些Bean 问题描述 实现思路 思路一 [不符合要求] 思路二[满足要求] 思路三[未试验] 问题描述 目前我工作环境下,后端主要的框架 ...

随机推荐

  1. CSS 基础 例子 Image 高度设置

    body高度100%,三个image高度分别为auto,50%,60%,imge高度为当时body高度的百分比,auto时为原始高度 html代码如下: <!DOCTYPE html> & ...

  2. DXP中插入LOGO图片方法(1)

    DXP中插入LOGO图片方法 1.QQ截图后,打开“开始”-->"附件"——>"画图工具",如图: 2.另存为BMP文件格式(设置图片大小.黑白色即 ...

  3. DOS和批处理基本命令

    http://www.cnblogs.com/leizhao/archive/2013/03/07/2949026.html 1.rem和:: rem注释命令,该命令后的内容不被执行,但能回显 ::注 ...

  4. Linux 安装JavaEE环境之Tomcat安装笔记

    1.先用xftp将tomcat的压缩包上传到 /opt/ 2.在/usr/local/下使用命令mkdir tomcat 创建tomcat目录 将apache-tomcat-7.0.70.tar.gz ...

  5. linux 的计划任务 定时任务

    linux的计划任务,也叫做定时任务 https://www.cnblogs.com/mingforyou/p/3930636.html 名字是crond 查看linux本机的定时任务 crontab ...

  6. 百度小程序button去掉默认边框

    百度小程序button去掉默认边框: button::after{ border:none; }

  7. SpringBoot使用ModelAndView时配置视图解析器

    spring boot 使用视图modelandview 原文:https://www.cnblogs.com/liyafei/p/7955943.html 1:springboot使用视图解析器,添 ...

  8. Linux Shell脚本编程基础(11)

    实际上Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核,不仅如此,Shell有自己的编程语言用于对命令的编辑,它允许用户编写由shell命令组成的程序.Shel编程语言具有普通编程 ...

  9. 前端在js中获取用户所在地区的时间与时区

    var times = Date() // 如果这种方式不行就使用 New Date() "Sat Jan 05 2019 10:35:24 GMT+0800 (中国标准时间)" ...

  10. Spring static 静态属性注入

    <bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"> &l ...