Spring中bean的三种装配机制之一—java configure
来源:互联网 发布:淘宝新店运营计划表 编辑:程序博客网 时间:2024/05/20 09:25
基本介绍
上一篇博文我们已经讲了怎样使用@ComponentScan和@Autowired实现自动装配,这里将讲解使用java config实现bean装配的方式。之所以还需要使用java config装配,是因为当我们使用第三方库中的组件时,就不能再使用@Component和@Autowired了。
java config是配置代码,一般不应该出现任何业务逻辑,以使得相关人员对其功能不产生混淆。
javaConfig方式进行bean装配:@Bean
首先声明实体类接口DuFamily及其实现类SonOne和进行依赖注入测试的类FriendOfSon:
package com.example.springboot.demo.javaconfigsystem;public interface DuFamily { void lastName();}
package com.example.springboot.demo.javaconfigsystem;import org.springframework.stereotype.Component;@Component//貌似可以去掉public class SonOne implements DuFamily { @Override public void lastName() { System.out.println("long"); }}
package com.example.springboot.demo.javaconfigsystem;import org.springframework.stereotype.Component;@Component//貌似可以去掉public class FriendOfSon { private DuFamily duFamily; public FriendOfSon(DuFamily duFamily) { this.duFamily = duFamily; }}
配置类
package com.example.springboot.demo.javaconfigsystem;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;@Configurationpublic class DemoConfig { /** * 获取大儿子的bean示例 * fixme:返回值类型就是@Autowired对应的类型名称,用@Bean的话貌似SonOne的@Component注解也没什么用了 */ @Bean public DuFamily duFamily(){ return new SonOne(); } /** * 获取大儿子朋友bean的示例: * 1.这个bean依赖大儿子的bean,注入依赖的bean有两种中方法: * 1)调用duFamily方法获取SonOne实例 return new FriendOfSon(duFamily()); * 2)fixme 使用这种方法:构造器注入。也可以setter注入 */// @Bean// public FriendOfSon friendOfSon(DuFamily duFamily){// return new FriendOfSon(duFamily);// } /** * 使用set方法注入 * @param duFamily * @return */ @Bean public FriendOfSon friendOfSon(DuFamily duFamily){ FriendOfSon friendOfSon=new FriendOfSon(); friendOfSon.setDuFamily(duFamily); return friendOfSon; }}
测试类
package com.example.springboot.demo.soundsystem;import com.example.springboot.demo.javaconfigsystem.DemoConfig;import com.example.springboot.demo.javaconfigsystem.DuFamily;import com.example.springboot.demo.javaconfigsystem.FriendOfSon;import com.example.springboot.demo.javaconfigsystem.SonOne;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import static org.junit.Assert.assertNotNull;/** * 测试使用java的方式(@Bean)配置bean的装配 * @date 2017/12/11 */@RunWith(SpringJUnit4ClassRunner.class)//测试时创建spring的应用上下文@ContextConfiguration(classes = DemoConfig.class)//从这个类里边找配置信息public class JavaConfigTest { @Autowired private DuFamily duFamily;//与返回类型对齐,不是@Component注解的子类 @Autowired FriendOfSon friendOfSon; @Test public void testJavaConfig(){ assertNotNull(friendOfSon); duFamily.lastName();//调用儿子的方法 }}
git地址:https://github.com/dugenkui03/spring-bean-wiring-demo
阅读全文
0 0
- Spring中bean的三种装配机制之一—java configure
- Spring中bean的三种装配机制之——自动装配
- Spring中装配bean的三种主要方式
- Spring中装配bean的三种主要方式
- Spring装配bean的三种方法:自动化装配,java代码装配,XML装配及它们的混合使用
- Spring装配bean的三种方式
- spring装配bean的三种方式
- Spring对bean的装配机制(二)——java显式装配
- spring中Bean的装配
- spring 4.x的bean装配机制
- Spring的三种装配Bean的方式
- Spring的自动装配Bean的三种方式
- Spring的自动装配Bean的三种方式
- 【spring】1、三种装配bean的方式
- Spring学习(四)-Bean的三种装配方式
- Spring装配Bean——Java代码装配bean
- spring基础-Bean的装配方式(三)自动装配
- Spring中装配bean
- 412. Fizz Buzz
- Http Client 客户端编码
- 面向对象
- Zookeeper_典型应用场景
- Intellij IDEA maven配置执行自动化测试
- Spring中bean的三种装配机制之一—java configure
- 区块链与程序员:赚钱还是创业
- 浅谈接口测试相关概念
- Android中的ANR
- unity自动录音功能
- signalr初体验...
- PHP 输出缓存 Output Buffer
- 关于DOTween的一些控制(随时更新)
- Python学习笔记