• SpringBoot入门学习(二)


    第一讲我们已经讲解了入门Demo,这一讲我们主要讲解包含以下内容

    1. 项目内一些属性配置
    2. 自定义属性配置
    3. ConfigurationProperties配置

    (1)第一个工程创建的时候会自动在工程下创建application.properties文件,如下图,那么该文件有什么作用呢?

                该文件主要用于参数配置,类似于web.xml一样,可以配置不同的参数,而且比web.xml 更强大。首先分析一下,demo首次访问项目地址是  http://localhost:8080/,

                我们并没有加项目路径,其实,这是springboot默认的。如果要加上项目路径,就只要在application.properties中配置即可,接下来我们将加上项目路径以及更改端口访问。

        

    在application.properties中配置如下

    重启项目访问 http://localhost:8888/hello/hello,结果如下图,正常可以访问。

    (2)自定义属性配置,日常开发中,我们知道,有一些参数是需要配置的,比如jdbc参数。那么我们是如何在application.properties中配置以及在程序是获取呢?

      首先在application.properties中配置参数如下

    在Demo这个类中增加相应代码。获取配置文件中的参数的值。代码如下:

    重启服务,然后访问 http://localhost:8888/hello/showDbMsg,结果如下,这就是自定义属性配置。

    (3)在上面我们已经获取到配置文件的参数了,但是有一个问题,Demo类使用了这几个参数,如果有上百个类也要引用,还需要定义上百次变量,这可不是好事情。所以我们要通过一种其他的方式来获取,即是抽取变量定义到一个实体类中,

    然后使用@ConfigurationProperties注解,自动解析参数给实体类赋值。当然application.properties定义的还是不变。

    新增实体类MySqlProperties

    package com.example.demo;
    
    import org.springframework.boot.context.properties.ConfigurationProperties;
    import org.springframework.stereotype.Component;
    
    @Component
    @ConfigurationProperties(prefix = "mysql")
    public class MySqlProperties {
    
        private String jdbcName;
        private String userName;
        private String password;
        private String jdbcUrl;
    
        public String getJdbcName() {
            return jdbcName;
        }
    
        public void setJdbcName(String jdbcName) {
            this.jdbcName = jdbcName;
        }
    
        public String getJdbcUrl() {
            return jdbcUrl;
        }
    
        public void setJdbcUrl(String jdbcUrl) {
            this.jdbcUrl = jdbcUrl;
        }
    
        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;
        }
    
        @Override
        public String toString() {
            return "MySqlProperties [jdbcName=" + jdbcName + ", jdbcUrl=" + jdbcUrl + ", userName=" + userName
                    + ", password=" + password + "]";
        }
    
    }

    demo类改造后如下:

    package com.example.demo;
    import javax.annotation.Resource;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    
    @Controller
    public class Demo {
    
        
        @Resource
        private MySqlProperties mySqlProperties;
        
        
        
        @ResponseBody
        @RequestMapping("/showDbMsg")
        public String showDbMsg() {
            return mySqlProperties.toString();
            
        }
        
        @ResponseBody
        @RequestMapping("/hello")
        public String name() {
            return "hello spring boot";
            
        }
    }

    重启容器后访问,http://localhost:8888/hello/showDbMsg,结果如下图,能正常访问。

  • 相关阅读:
    cpu核数和逻辑个数的区别_CPU逻辑核心数和物理核心数
    linux查看CPU数
    Java读取excel中日期格式结果为数字44326天
    Java实现读取excel中的数据及图片
    jmeter设置全局变量,获取登录token,实现两个线程组参数公用
    CPU使用率
    快照版本和发布版本区别
    jmeter与postman请求结果返回不一致
    接口认证方式:Bearer Token
    jmeter 中报java.lang.OutOfMemoryError: Java heap space
  • 原文地址:https://www.cnblogs.com/yuanchaoyong/p/8729538.html
Copyright © 2020-2023  润新知