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

结果出来了


扫描二维码关注公众号,回复: 1857816 查看本文章

这样我们就修改了默认的访问端口及访问路径


2 .SpringBoot自定义属性

上边我们使用的是SpringBoot提供的一些属性配置,我们也可以自定义一些属性

我们在application.properties中加一个自定义一个helloWorld属性,属性值为:Spring Boot hello world

server.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.Driver

mysql.dbUrl=jdbc:mysql://localhost:3306/db_diary

mysql.userName=root

mysql.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://blog.csdn.net/saytime/article/details/74781708




猜你喜欢

转载自blog.csdn.net/eeeeasy/article/details/80794592