重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
Java程序员自动组件注入的几种方式你会哪一种?
为大观等地区用户提供了全套网页设计制作服务,及大观网站建设行业解决方案。主营业务为网站制作、成都网站建设、大观网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
Java程序员在开发的时候,一般都会遇到组件注入这个问题,回想起当年刚进入Java程序员这个行业的时候也遇到过这样的问题,那么我们今天就来讨论一下组件注入会有哪几种方式,希望能帮助大家快速攻破这个技术难点。
注入依赖对象可以采用手工装配或自动装配,在实际应用中建议使用手工装配,因为自动装配会产生未知情况,开发人员无法预见最终的装配结果。
问题1:@Autowired 、@Inject 、@Resource 的区别
@Autowired
[if !supportLists]· [endif]Spring标准
[if !supportLists]· [endif]按照类型注入(ByType)
[if !supportLists]· [endif]AutowiredAnnotationBeanPostProcessor对其进行处理
[if !supportLists]· [endif]支持属性、set方法、构造方法注入,可以联合@Qualifier完成ByName,联合@Primary解决同类多 Bean冲突(不推荐,除非迫不得已)
[if !supportLists]· [endif]拥有required属性判定空
[if !supportLists]· [endif]构造函数只能有一个,构造方法注入@Autowire可以不带
[if !supportLists]· [endif]@Configuration中也可以不带@Autowire
[if !supportLists]· [endif]推荐set方法、构造方法注入
@Resource
[if !supportLists]· [endif]JSR250标准
[if !supportLists]· [endif]按照名称注入(ByName)
[if !supportLists]· [endif]CommonAnnotationBeanPostProcessor对其进行处理
[if !supportLists]· [endif]不支持@Qualifier、@Primary
[if !supportLists]· [endif]不支持required属性判定空
@Inject
[if !supportLists]· [endif]JSR330
[if !supportLists]· [endif]按照名称注入(ByType)
[if !supportLists]· [endif]支持@Qualifier、@Primary
[if !supportLists]· [endif]不支持required属性判定空
[if !supportLists]· [endif]需要依赖
javax.inject
javax.inject
1
问题2:下面代码有没有问题?
@Configuration
public class WorkerConfiguration {
@Autowired
Environment environment;
public WorkerConfiguration(){
System.out.println(environment.getProperty("os.name"));
}
@Bean
public Dept dept() {
System.out.println("dept>>>>>>>>>>>>>>>>>>>");
return new Dept();
}
}
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。