写在前面:关于Spring Boot的hello word 网上一堆,所以这里并不是从hello world 起步,而是 从配置application.properties开始,毕竟一个项目开始,首先就要配置好数据库。
一、目录结构
可以看到,目前我配置了两个properties,这样也比较贴合实际需求,不可能把所有的配置全放application.properties中。
二、 安装依赖。
1、为了每个Bean不用写setter和getter,安装lombok
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.12</version> <optional>true</optional> </dependency>
安装后,在需要的Bean上面就可以使用@Data,然后就不用收些getter和setter了。
2、configuration-processor,这个是在使用出了application.properties时,指定文件路径的时候使用
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency>
三、使用
我想在TestController中使用application.properties 和 test.properties这两个配置文件。
1、先看看test.properties中的内容:
创建一个TestBean:
package com.dany.blog.bean; import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.PropertySource; import org.springframework.stereotype.Component; @Component -->跟Spring Boot说:我这里有个组件 @Configuration -->是配置文件 @Data -->不用自己写setter和getter了 @ConfigurationProperties(prefix = "test") -->刚才的那个test.properties中 内容中 前缀为test的。 @PropertySource("classpath:test.properties") -->指定这个配置在哪里 public class TestBean { private String level; private String name; }
2、看看application.properties中的内容:
同样创建一个blogProperties的Bean,这个内容就比上面的那个少很多@了,因为SpringBoot默认就是找application.properties
package com.dany.blog.bean; import lombok.Data; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; @Data @Component public class BlogProperties { @Value("${dany.blog.name}") private String name; @Value("${dany.blog.title}") private String title; }
3、在TestControoler中使用
package com.dany.blog.controller; import com.dany.blog.bean.BlogProperties; import com.dany.blog.bean.TestBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class TestController { @Autowired private TestBean testBean; @Autowired private BlogProperties blogProperties; @RequestMapping("/") public String index() { return "test name:"+testBean.getName()+" blog的配置"+blogProperties.getName(); } }
4、结果