前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >装配bean

装配bean

作者头像
用户1174983
发布2018-02-05 15:11:12
6560
发布2018-02-05 15:11:12
举报
文章被收录于专栏:钟绍威的专栏钟绍威的专栏

spring有三种装配bean的方式:隐式装配、java代码装配、xml装配

隐式装配最为省事方便,也称为自动化装配 这三种装配方式可以混搭着来用 在这里通过一个例子来讲述配置 CD的两个实现,一个是ThinkingJAVA,一个是LinuxBird 注解配置 定义bean

代码语言:javascript
复制
@Component
public class ThinkingJAVA{
public void play(){
  System.out.println("java思想");
}
}

在这里ThinkingJAVA被Component标识成一个bean,bean的id自动为thinkingJAVA

代码语言:javascript
复制
@Component
public class CDPlayer {
@Autowired(required=true)
public CD cd;
public void play(){
  cd.play();
}
}

cdPlayer中有一个自动cd,被标识为自动装配,且一定会装配,如果容器中不存在CD类型的bean,那么就会报错,如果required=false,则表示可装配时装配,如果没有的装配则不会去装配 隐式装配 隐式装配既自动扫包 通过java代码开启自动扫包

代码语言:javascript
复制
@Configuration
//扫描当前类的包及其自包
//@ConponentScan()
//扫描string指定包及其子包
//不推荐这种方式,不利于代码重构,也不好检查错误
//@ConponenetScan(basePackages="soundsystem")
//扫描指定class所在的包及其子包
//推荐这种方式,利于代码重构
//可以设置一个空接口用来标识基础包
//表示扫描CD类和CDPlayer所在的包及其子包
@ConponentScan(basePackageClasses={CD.class,CDPlayer.class})
public class CDPlayerConfig {
}

最好把配置的类单独放在配置包,不要跟业务逻辑搅在一起 xml开启自动扫包

代码语言:javascript
复制
<context:component-scan base-package="要扫描的包及其子包"></context:component-scan>

在xml文件中加上这么一句 java代码装配

代码语言:javascript
复制
@Configuration
public class CDPlayerConfig {
//指定bean
@Bean
public ThinkingJAVA thingkingJAVA(){
return new ThinkingJAVA();
}
@Bean
public CDPlayer cDPlayer(){
return new CDPlayer();
}
}

bean的id就是方法名 可以用java代码来构造出实例,所以很强大,有很多种可能性 混搭装配 java代码装配和xml装配可以整合起来 将两个java装配类合为一个 将他们合为一个SoundsystemConfig.class

代码语言:javascript
复制
@Configuration
@Import(CDConfig.class,CDPlayer.class)
//如果要整合xml
//@ImportResource(&quot;classpath:cdconfig.xml&quot;)
public class SoundsystemConfig {
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-07-12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档