spring常用注释小结ITeye - 娱乐之横扫全球

spring常用注释小结ITeye

2019年03月06日10时17分10秒 | 作者: 惜玉 | 标签: 注释,变量,静态 | 浏览: 2385

可以用@Component 、@Repository、@Service、@Controller注释类。

@Component 是通用方式。@Repository注释dao @Service注释service @Controller注释action。

需求经过 context:component-scan 扫描到这些注释的类,才会在spring的容器里边初始化。

 

@Lazy是否推迟加载
@DependsOn界说依靠的bean
@Scope界说效果域

 

对成员变量的注释

@Resource依据name和type进行成员变量的注入。

@Autowired依据类型匹配,@Resource默许是依据name匹配,引荐运用@Resource。

 

 ApplicationContextAware运用

最终介绍一种在恣意类里边获取容器的办法。

写一个类完成ApplicationContext接口,将该类装备到spring容器里边,会主动将ApplicationContext注入到该类里边。代码如下

/**
 * 以静态变量保存Spring ApplicationContext, 可在任何代码任何地方任何时候中取出ApplicaitonContext.
public class SpringContextHolder implements ApplicationContextAware {
 private static ApplicationContext applicationContext;
 * 完成ApplicationContextAware接口的context注入函数, 将其存入静态变量.
 public void setApplicationContext(ApplicationContext applicationContext) {
 SpringContextHolder.applicationContext = applicationContext; // NOSONAR
 * 获得存储在静态变量中的ApplicationContext.
 public static ApplicationContext getApplicationContext() {
 checkApplicationContext();
 return applicationContext;
 * 从静态变量ApplicationContext中获得Bean, 主动转型为所赋值目标的类型.
 @SuppressWarnings("unchecked")
 public static T T getBean(String name) {
 checkApplicationContext();
 return (T) applicationContext.getBean(name);
 * 从静态变量ApplicationContext中获得Bean, 主动转型为所赋值目标的类型.
 @SuppressWarnings("unchecked")
 public static T T getBean(Class T clazz) {
 checkApplicationContext();
 return (T) applicationContext.getBeansOfType(clazz);
 * 铲除applicationContext静态变量.
 public static void cleanApplicationContext() {
 applicationContext = null;
 private static void checkApplicationContext() {
 if (applicationContext  null) {
 throw new IllegalStateException("applicaitonContext未注入,请在applicationContext.xml中界说SpringContextHolder");
}

 

在任何地方都能调用静态办法getBean获取Ioc容器里边的javabean。

 

 

 

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表娱乐之横扫全球立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章