2.2 Spring boot 配置分析 - 通过工厂方式注入bean
2017-10-08 11:06
866 查看
本章主要写的是 Spring5 通过实现FactoryBean 的方式 来注入Bean 。
初始条件:
1. Java version : 1.8
2. maven vesion: 1.3.9
快速链接: 2.1 Spring5 快速入门
第一步:创建一个简单结构(quickstart)的 Maven 工程
第二步:将 Spring5 的依赖加入项目的 POM 文件中:
第三步: 创建一个 bean , 用于注入到 Spring 中。
第四步: 创建类,继承FactoryBean,将泛型T替换掉,并实现其方法。
第五步: 创建一个配置类,用于管理要注入的 bean 或者配置文件信息。需要在类上添加 @Configuration 注解,以便让 Spring 识别为这是一个配置类。
在此基础上,把上一步创建的自定义工厂 bean 注入到改配置类中,添加 getBean 方法:
上面的注释部分是可以替代 @bean 的,区别是 @Bean(“xXX”) 方式可以自定义 bean 的名字,“xXX”可以在后续获取该 bean 的时候使用。
第六步:创建一个含有 main 方法的主类,在该类中获取 Spring 的上下文,并将上述的配置类添加到获取 Spring 的上下文的构造器中,文章的目的是实现以注解的方式实现 bean 的注入,故选择 AnnotationConfigApplicationContext 。
直接运行上面的类,输出的 bean 信息如下:
初始条件:
1. Java version : 1.8
2. maven vesion: 1.3.9
快速链接: 2.1 Spring5 快速入门
第一步:创建一个简单结构(quickstart)的 Maven 工程
第二步:将 Spring5 的依赖加入项目的 POM 文件中:
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.0.0.RELEASE</version> </dependency>
第三步: 创建一个 bean , 用于注入到 Spring 中。
public class MyBean { /* 初始化的目的是为了在获取 bean 时,可以有直观的信息输出 */ private String id = "ID_000000000001"; public String getId() { return id; } public void setId(String id) { this.id = id; } }
第四步: 创建类,继承FactoryBean,将泛型T替换掉,并实现其方法。
import com.test.test1.MyBean; import org.springframework.beans.factory.FactoryBean; import org.springframework.lang.Nullable; public class MyBeanFactory implements FactoryBean<MyBean> { @Nullable public MyBean getObject() throws Exception { return new MyBean(); } @Nullable public Class<?> getObjectType() { return MyBean.class; } // 创建bean的方式,单例、多例,默认是多例 public boolean isSingleton() { return false; } }
第五步: 创建一个配置类,用于管理要注入的 bean 或者配置文件信息。需要在类上添加 @Configuration 注解,以便让 Spring 识别为这是一个配置类。
@Configuration public class MyConfig { }
在此基础上,把上一步创建的自定义工厂 bean 注入到改配置类中,添加 getBean 方法:
import com.test.test2.MyBeanFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class MyConfig { @Bean public MyBeanFactory createRunableFactory(){ return new MyBeanFactory(); } }
上面的注释部分是可以替代 @bean 的,区别是 @Bean(“xXX”) 方式可以自定义 bean 的名字,“xXX”可以在后续获取该 bean 的时候使用。
第六步:创建一个含有 main 方法的主类,在该类中获取 Spring 的上下文,并将上述的配置类添加到获取 Spring 的上下文的构造器中,文章的目的是实现以注解的方式实现 bean 的注入,故选择 AnnotationConfigApplicationContext 。
import com.test.test2.MyBeanFactory; import org.springframework.context.annotation.AnnotationConfigApplicationContext; /** * 测试bean基于注解的注入方式 */ public class App { public static void main( String[] args ) { // 以注解的形式把 bean 注入Spring 并获取 Spring 的上下文环境 AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(MyConfig.class); // 获取自己配置的 bean 实例 MyBeanFactory runableFactory = ctx.getBean(MyBeanFactory.class); try { String id = runableFactory.getObject().getId(); System.out.println("MyBean ID ----- >> " + id); } catch (Exception e) { e.printStackTrace(); } } }
直接运行上面的类,输出的 bean 信息如下:
MyBean ID ----- >> ID_000000000001
相关文章推荐
- 原始方式:spring四种依赖注入方式 |注解方式:Spring零配置通过注解实现Bean依赖注入
- Spring学习第十一天:通过工厂方式配置Bean
- spring boot框架学习学前掌握之重要注解(2)-通过java的配置方式进行配置spring
- SpringJUnit4加载类目录下(src)和WEF-INF目录下的配置文件二--获取注入的bean的二种方式
- Bean作用域的配置以及 Spring各种注入方式实例 list set map props
- spring学习笔记九 通过工厂方法配置bean
- Spring-装配Bean的3种方式-工厂静态方法方式配置Bean
- Spring零配置通过注解实现Bean依赖注入总结<转>
- spring 通过工厂方法配置Bean
- Spring_通过工厂方法配置bean(9)
- Spring中bean注入初始化方式—通过注解@Configuration @bean
- Spring 通过工厂方法(Factory Method)来配置bean
- 通过实例及源码分析关于SpringBoot启动类启动时自动配置问题
- spring boot框架学习学前掌握之重要注解(2)-通过java的配置方式进行配置spring
- [java][spring]取得通过配置文件和注解注入的bean、取得当前数据库连接、取得ApplicationContext的方法
- Spring通过配置文件注入bean
- spring 通过工厂方法配置Bean
- Spring-10:通过工厂方法配置Bean
- spring的配置文件中bean的注入方式
- 先码后看 spring配置bean的几种方式:xml直接配置、静态工厂、实例工厂、factory bean、注解 侵立删