1.@Value注解
@Value 为属性注入值(该注解贴在属性上)
支持如下方式的注入:
(1)注入普通字符
@Value(“Michael Jackson”)String name;
(2)注入操作系统属性
@Value(“#{systemProperties[‘os.name’]}”)String osName;
(3)注入表达式结果
@Value(“#{ T(java.lang.Math).random() * 100 }”) String randomNumber;
(4)注入其它bean属性
@Value(“#{domeClass.name}”)String name;
(5)注入文件资源
@Value(“classpath:cn/wolfocde/demo/test.txt”)String Resource file;
(6)注入网站资源
@Value(“http://www.wolfcode.cn")Resource url;
(7)注入配置文件
Value(“${user.name}”)String bookName;
2.切面(AOP)相关注解
Spring支持AspectJ的注解式切面编程。
@Aspect 声明一个切面(该注解贴在类上)
使用@After、@Before、@Around定义建言(advice),可直接将拦截规则(切点)作为参数。
@After 在方法执行之后执行(该注解贴在方法上)
@Before 在方法执行之前执行(该注解贴在方法上)
@Around 在方法执行之前与之后执行(该注解贴在方法上)
@PointCut 声明切点在java配置类中使用@EnableAspectJAutoProxy注解开启Spring对AspectJ代理的支持(该注解贴在类上)
3.@Scope注解注解
@Scope(value=ConfigurableBeanFactory.SCOPE_PROTOTYPE):这个是说在每次注入的时候回自动创建一个新的bean实例;
@Scope(value=ConfigurableBeanFactory.SCOPE_SINGLETON):单例模式,在整个应用中只能创建一个实例;
@Scope(value=WebApplicationContext.SCOPE_GLOBAL_SESSION):全局session中的一般不常用;
@Scope(value=WebApplicationContext.SCOPE_APPLICATION):在一个web应用中只创建一个实例;
@Scope(value=WebApplicationContext.SCOPE_REQUEST):在一个请求中创建一个实例;
@Scope(value=WebApplicationContext.SCOPE_SESSION):每次创建一个会话中创建
4.@SpringBootApplication注解
Spring Boot提供一个方便的 @SpringBootApplication 选择。该 @SpringBootApplication 注解等价于以默认属性使用 @Configuration , @EnableAutoConfiguration 和 @ComponentScan 。
【例子】我们使用多数据源时
@SpringBootApplication(exclude={DataSourceAutoConfiguration.class})
@Import({DynamicDataSourceConfig.class})