接着上面的入门教程,我们来学习下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. SRM468

    250pt 给定手机0-9按键对应的英文字母(1个对多个),0固定对应空格.然后在给定一些单词.以及一个要处理的串,叫你按照那个串模拟输出结果 思路: 大模拟,写的有点乱 // BEGIN CUT H ...

  2. HRBUST 1161 树状数组区间更新求和

    Leyni Time Limit: 3000 MS Memory Limit: 65536 K Total Submit: 267(64 users) Total Accepted: 82(57 us ...

  3. 1.buntu 安装redis

    方式一 :apt安装 在 Ubuntu 系统安装 Redi 可以使用以下命令: $sudo apt-get update $sudo apt-get install redis-server 启动 R ...

  4. hdu 1012 素数判定

    这道题~以前判定prime是一个个去试着整除再去存储,上次弄过欧拉函数那题目之后就知道了,这样会更快捷: prime[] = prime[] = ; ; i <maxn; i++) { if(! ...

  5. 实验6 LCD接口

    1.利用单片机控制LCD1602,在LCD1602上显示字符串,并使其整屏左移. #include<reg51.h> #define uchar unsigned char #define ...

  6. Java获取http和https网址对应html数据实例

    由于之前在公司一直用的C#做的软件开发,近些天有同学需要用Java做一个从指定网址获取信息的Java程序.正好不是很难,顺便复习了一下Java的知识. 要求如下,在https://www.marine ...

  7. MQ的demo

    public class WorkTest {  @Test  public void send() throws Exception{    //获取连接    Connection conn = ...

  8. Android sharedUserId 和系统权限

    sharedUserId 给不同的应用使用同一个 sharedUserId 可以运行在这几个应用间互相访问数据(数据库,SharedPreferences,文件). sharedUserId 一旦使用 ...

  9. 项目中jsp的存放

    今天早上犯的错, 复习jsp,把jsp放在 WEB-INF 下  我启动项目,想看效果的时候,一直找不到指定的资源404 后来一番探索,我把它拖放在了WebContent  直接访问的,下午看到知识点 ...

  10. 网络基础、ftp任务(进度条、计算文件大小、断点续传、搭建框架示例)

    一.网络基础 1.端口,是什么?为什么要有端口? 端口是为了将同一个电脑上的不同程序进行隔离. IP是找电脑:端口是找电脑上的应用程序: 端口范围:1 – 65535 :    1 - 1024 不要 ...