Spring如何装配bean

发布时间:2020-08-01 14:37:04 作者:小猪
来源:亿速云 阅读:109

这篇文章主要讲解了Spring如何装配bean,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。

一 前言

在XML中进行显式配置。

在Java中进行显式配置。

隐式的bean发现机制和自动装配

关于xml配置不会在本篇说明,有兴趣的读者可以自行了解学习;

二 自动装配bean

自动装配Bean主要通过如下两个方式实现自动装备bean

敲黑板了:

理下思路我们可以通过@Component注解使用在多个类上实现多个bean;然后通过@Autowiring使用在方法上实现bean之间的依赖注入;最后通过@ComponentScan将所有bean扫入spring应用上下文;当然里面还有许多使用的小细节,要不然很容易出错;

实现如下

2.1 棉被类

/**
 * @Author lsc
 * <p>棉被 </p>
 */
@Component
public class Quilt {

 // 质量
 private String quality;

 public void product(){
  System.out.println("生产与中国");
 }

// 省略set/get
}

2.2 被单类

/**
 * @Author lsc
 * <p> 被单</p>
 */
@Component//相当于@Component("sheet")
public class Sheet {

 // 颜色
 private String color;
 // 长度
 private String length;


 private Quilt quilt;
 // 使用构造器注入方式将Quilt注入到Sheet,你也可以使用set方式;原则上还可以其它方法
 public Sheet(Quilt quilt){
  this.quilt = quilt;
 }
// 省略set/get

}

2.3被单配置类

/**
 * @Author lsc
 * <p>被单配置类 </p>
 */
@Configuration//告诉spring这是一个配置类
@ComponentScan//这边的包是com.zszxz.auto 相当于@ComponentScan(basePackages = {"com.zszxz.auto"})
public class SheetConfig {
}

2.4 测试类

/**
 * @Author lsc
 * <p> </p>
 */
@RunWith(SpringJUnit4ClassRunner.class)//创建spring应用上下文
@ContextConfiguration(classes= SheetConfig.class)//加载配置类
public class SheetTest {

 @Autowired
 Sheet sheet;

 @Test
 public void sheetTest(){
  // 生产与中国
  sheet.getQuilt().product();
 }
}

三 java配置

java配置只需要通过如下注解即可完成,通常使用在引入第三方类时;

思路:@Configuration注解声明的配置类中使用注解@Bean,就实现了java配置;

3.1 棉类

/**
 * @Author lsc
 * <p>棉 </p>
 */
public class Cotton {

 // 质量
 private String quality;

 public void product(){
  System.out.println("cotton生产与中国");
 }
 // 省略set/get
}

3.2 毛毯

/**
 * @Author lsc
 * <p> 毛毯</p>
 */
public class Blanket {

 // 颜色
 private String color;
 // 长度
 private String length;

 // 构造器注入
 private Cotton cotton;
 @Autowired
 public Blanket(Cotton cotton){
  this.cotton = cotton;
 }
 // 省略set/get
} 

3.3 毛毯配置类

/**
 * @Author lsc
 * <p>毛毯配置类 </p>
 */
@Configuration//告诉spring这是一个配置类,spring会扫描其所有配置纳入spring容器
public class BlanketConfig {

 // 将Cotton注入到spring应用上下文
 @Bean
 public Cotton cotton(){
  return new Cotton();
 }

 // 将 Cotton注入到Blanket注入到spring应用上下文
 @Bean
 public Blanket blanket(Cotton cotton){
  return new Blanket(cotton);
 }
}

3.4 测试类

/**
 * @Author lsc
 * <p> </p>
 */
@RunWith(SpringJUnit4ClassRunner.class)//创建spring应用上下文
@ContextConfiguration(classes= BlanketConfig.class)//加载配置类
public class BlanketTest {

 @Autowired
 Blanket blanket;

 @Test
 public void sheetTest(){
  // cotton生产与中国
  blanket.getCotton().product();
 }
}

四 配置结合

使用 @Import 注解能将一个配置类导入另一个配置类, 通常用来合并配置类,下面的示例使用方式更加优雅;

使用示例

/**
 * @Author lsc
 * <p> </p>
 */
@Configuration
@Import({SheetConfig.class, BlanketConfig.class})
public class MergeConfig {
}

测试示例

/**
 * @Author lsc
 * <p> </p>
 */

@RunWith(SpringJUnit4ClassRunner.class)//创建spring应用上下文
@ContextConfiguration(classes= MergeConfig.class)//加载配置类
public class MergeTest {
 @Autowired
 Blanket blanket;

 @Test
 public void sheetTest(){
  // cotton生产与中国
  blanket.getCotton().product();
 }
}

看完上述内容,是不是对Spring如何装配bean有进一步的了解,如果还想学习更多内容,欢迎关注亿速云行业资讯频道。

推荐阅读:
  1. Spring IOC怎么装配Bean
  2. 如何使用Spring实现自动装配Bean

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

spring bean bea

上一篇:解决php获取不到post数据的问题

下一篇:Jenkins实现自动运行jmeter脚本并出具报告的实现

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》