1、 @RestController
combines @Controller and @ResponseBody, two annotations that results in web requests returning data rather than a view.
@RestController 是@controller 和 @ResponseBody 的合体。
2、@EnableAutoConfiguration注解
二个类级别的注解是 @EnableAutoConfiguration 。这个注解告诉Spring Boot根据添加的jar依赖猜测你想如何配置Spring。由于 spring-boot-starter-web 添加了Tomcat和Spring MVC,所以auto-configuration将假定你正在开发一个web应用并相应地对Spring进行设置。
你可以通过将 @EnableAutoConfiguration 或 @SpringBootApplication 注解添加到一个 @Configuration 类上来选择自动配置。
注:你只需要添加一个 @EnableAutoConfiguration 注解。建议你将它添加到主 @Configuration 类上。
如果发现应用了你不想要的特定自动配置类,你可以使用 @EnableAutoConfiguration 注解的排除属性来禁用它们。
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
3、@Configuration
指出该类是 Bean 配置的信息源,相当于XML中的<beans></beans>,一般加在主类上。
@Configuration:相当于传统的xml配置文件,如果有些第三方库需要用到xml文件,建议仍然通过@Configuration类作为项目的配置主类——可以使用@ImportResource注解加载xml配置文件。
3.1 @Import:用来导入其他配置类。
eg:
@Import({Square.class,Circular.class})
@Configuration
public class MainConfig{
}
Square 和Circular 类没有打任何注解, 用了@import 和 @configuration在mainConfig 后, 这两个类的bean也初始化到容器中了。
3.2 @ImportResource:用来加载xml配置文件。
Spring Boot提倡基于Java的配置。尽管你可以使用一个XML源来调用 SpringApplication.run() ,我们通常建议你使用 @Configuration 类作为主要源。一般定义 main 方法的类也是主要 @Configuration 的一个很好候选。你不需要将所有的 @Configuration 放进一个单独的类。 @Import 注解可以用来导入其他配置类。另外,你也可以使用 @ComponentScan 注解自动收集所有的Spring组件,包括 @Configuration 类。
如果你绝对需要使用基于XML的配置,我们建议你仍旧从一个 @Configuration 类开始。你可以使用附加的 @ImportResource 注解加载XML配置文件。
@Configuration注解该类,等价 与XML中配置beans;用@Bean标注方法等价于XML中配置bean
@ComponentScan(basePackages = "com.hyxt",includeFilters ={@ComponentScan.Filter(Aspect.class)})
4、@PropertySource注解读取指定文件并将属性注入到配置类
@PropertySource( name="jdbc-bainuo-dev.properties",value= {"classpath:config/jdbc-bainuo-dev.properties"},ignoreResourceNotFound=false,encoding="UTF-8")
在打注解的类中相应属性上用 @Value("${spring.datasource.shareniu.url}") 注入相应的值
5、@ConfigurationProperties注解使用
@ConfigurationProperties(prefix="person") 默认加载全局配置文件 application.properties或application.yml
6、@SpringBootApplication 通常用在启动类上。
很多Spring Boot开发者总是使用 @Configuration , @EnableAutoConfiguration 和 @ComponentScan 注解他们的main类。由于这些注解被如此频繁地一块使用(特别是你遵循以上最佳实践时),Spring Boot提供一个方便的 @SpringBootApplication 选择。
该 @SpringBootApplication 注解等价于以默认属性使用 @Configuration , @EnableAutoConfiguration 和 @ComponentScan 。
Spring Boot将尝试校验外部的配置,默认使用JSR-303(如果在classpath路径中)。你可以轻松的为你的@ConfigurationProperties类添加JSR-303 javax.validation约束注解:
@Component
@ConfigurationProperties(prefix="connection")
publicclass ConnectionSettings {
@NotNull
private InetAddress remoteAddress;
// ... getters and setters 7}
7、@Profiles
Spring Profiles提供了一种隔离应用程序配置的方式,并让这些配置只能在特定的环境下生效。任何@Component或@Configuration都能被@Profile标记,从而限制加载它的时机。
@Configuration
@Profile("production")
public class ProductionConfiguration {
// ...
}
网友评论