Spring Boot学习第二篇:Spring Boot特性
2016-08-09 09:05
501 查看
Spring Boot特性
构建Maven
Maven用户可以继承spring-boot-starter-parent项目来获取默认设置。该父项目提供以下特性:默认编译级别为Java 1.6 源码编码为UTF-8
一个依赖管理节点,允许你省略普通依赖的标签,继承自spring-boot-dependencies POM。
合适的资源过滤 合适的插件配置(exec插件,surefire,Git commit ID,shade)
针对application.properties和application.yml的资源过滤
最后一点:由于默认配置文件接收Spring风格的占位符(${…}),Maven
filtering改用@..@占位符(你可以使Maven属性resource.delimiter来覆盖它)。
标题
使用没有父POM的Spring Boot
<dependencyManagement> <dependencies> <dependency> <!-- Import dependency management from Spring Boot --> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>1.3.0.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
改变Java版本
<properties> <java.version>1.8</java.version> </properties>
使用Spring Boot Maven插件
Spring Boot包含一个Maven插件,它可以将项目打包成一个可执行jar<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
外化配置
Spring Boot允许使用properties文件、yaml文件或者命令行参数作为外部配置使用@Value注解,可以直接将属性值注入到你的beans中,并通过Spring的Environment抽象或绑定到结构化对象来访问。
@Value(“${xxx}”)
application.properties在properties文件中增加几个属性 server.port=8081 server.context-path=/demo #声明一个name属性 users.name=zhangsan user.age=22
DemoApplication.java
@SpringBootApplication @RestController public class DemoApplication { @Value("${users.name}") private String name; @Value("${user.age}") private String age; @RequestMapping("/") String home() { return "Hello World,name is" + name + ", age is"+ age; } public static void main(String[] args) { SpringApplication app = new SpringApplication(DemoApplication.class); app.setBannerMode(Mode.OFF); app.run(args); } }
运行结果:
@ConfigurationProperties
使用@Value(“${property}”)注解注入配置属性有时可能比较笨重,特别是需要使用多个properties或你的数据本身有层次结构。为了控制和校验你的应用配置,Spring Boot提供一个允许强类型beans的替代方法来使用properties。application.properties
在properties文件中增加几个属性
users.servers[0]=dev.bar.com users.servers[1]=foo.bar.com
添加ConnectionSettings 类
@Component /*Spring Boot 会将users开头的属性按照名字匹配注入到ConnectionSettings对象中。*/ @ConfigurationProperties(prefix="users") public class ConnectionSettings { private String name; private Integer age; private List<String> servers = new ArrayList<String>(); // ... getters and setters }
然后只需要注入ConnectionSettings 就ok了
@Autowired private ConnectionSettings connection;
同样的@ConfigurationProperties也可以在@Bean方法上使用它
@Profile
Spring Profiles提供了一种隔离应用程序配置的方式,并让这些配置只能在特定的环境下生效。[b]Profile特定配置文件[/b]
application-{profile}.properties 如:application-prod.properties
在本地模拟出一个开发环境和生产环境
创建application-prd.properties 和 application-dev.properties
application-dev.properties
server.port=8080
server.context-path=/demo
users.name=zhangsan
users.age=22
users.servers[0]=dev.bar.com users.servers[1]=foo.bar.com
application-prd.properties
server.port=8081
server.context-path=/demo
users.name=zhangsan
users.age=22
users.servers[0]=dev.bar.com users.servers[1]=foo.bar.com
application.properties
spring.profiles.active=dev
启动之后
修改spring.profiles.active为prd并启动
[b]以编程方式设置profiles[/b]
SpringApplication app = new SpringApplication(DemoApplication.class); app.setAdditionalProfiles("prd");
相关文章推荐
- Spring Boot 学习(二)一些特性
- 基于Spring Boot和Spring Cloud实现微服务架构学习(二)-Spring Boot总结
- spring boot框架学习6-spring boot的web开发(2)
- spring boot框架学习9-spring boot的web开发(5)-错误解决及跳转页面
- spring boot框架学习7-spring boot的web开发(3)-自定义消息转换器
- spring boot学习系列:spring boot与jdbcTemplate的整合案例
- spring boot框架学习2-spring boot核心(1)
- spring boot框架学习6-spring boot的web开发(2)
- spring boot框架学习5-spring boot的web开发(1)
- spring boot框架学习8-【干货】spring boot的web开发(4)-自定义拦截器处理权限
- Spring Boot 学习31--Spring Boot导入XML配置
- spring boot框架学习1-认识spring boot和快速入门
- Spring Boot学习——Spring Boot配置文件application
- spring boot框架学习7-spring boot的web开发(3)-自定义消息转换器
- Spring boot学习笔记 001——初识Spring boot
- 基于Spring Boot和Spring Cloud实现微服务架构学习(二)-Spring Boot总结
- Spring Boot学习--spring-boot-starter-parent及starters
- Spring Boot学习笔记03--深入了解SpringBoot的启动过程
- spring boot框架学习8-【干货】spring boot的web开发(4)-自定义拦截器处理权限
- spring boot框架学习7-spring boot的web开发(3)-自定义消息转换器