如何将一个对象或者类注册到Spring容器
1 将类注册到到Spring容器该类的实例化和初始化过程由spring控制。方法一:xml注册Beanxml注册Bean,如果spring配置元数据的方式是xml时,可以手动在xml注册第三方jar包中的类。常用来配置本项目中的Bean。<bean id="service1" class="stu.spring.services.Service1"></bean>...
1 将类注册到到Spring容器
该类的实例化和初始化过程由spring控制。
方法一:xml注册Bean
xml注册Bean,如果spring配置元数据的方式是xml时,可以手动在xml注册第三方jar包中的类。常用来配置本项目中的Bean。
<bean id="service1" class="stu.spring.services.Service1"></bean>
方法二:@Componen
扫描注解,如果spring配置元数据的方式是注解时,指定扫描包然后给类上加@Component注解就可以。常用来扫描本项目中的Bean。
xml指定扫描包:
<context:component-scan base-package="stu.spring.lifecycle"></context:component-scan>
Java Configuration指定扫描包:
@Configuration
@ComponentScan("stu.spring.services")
public class AppConfig {
}
方法三:@Configuration
spring配置元数据的方式使用Java Configuration时,指定配置类的注解,spring该注解spring在实例化该类的对象时是先通过cglib代理生成代理类,再实例化对象。
@Configuration
public class ConfigA {
}
方法四:@Import
@Import注解,用于java配置类上才有效,常用来导入一个或者多个配置类,导入非配置类也可以。
@Configuration
public class ConfigA {
@Bean
public A a() {
return new A();
}
}
@Configuration
@Import(ConfigA.class)
public class ConfigB {
@Bean
public B b() {
return new B();
}
}
2 将一个对象注册到spring容器
该对象的实例化和初始化过程由程序员控制。
方法一:@Bean
@Bean注册Bean,如果spring配置元数据的方式是Java Configuration时,可以使用@Bean注解注册第三方jar包中的类。一般用来注册一些配置信息。
@Bean
public A1Service getA2Service(){
return new A1Service() ;
}
方法二:spring容器直接注册
获取到使用容器,使用spring容器直接注册bean。获取spring容器的方法有很多不仅仅下面示例展示的方式。
AnnotationConfigApplicationContext ann = new AnnotationConfigApplicationContext(AppConfig.class);
ann.getBeanFactory().registerSingleton("testService",new A1Service());
方法三:FactoryBean
使用自定义的FactoryBean,一般和第三方jar继承或者扩展spring使用该方式
@Component
public class CustomerFactoryBean implements FactoryBean<A1Service> {
@Override
public A1Service getObject() throws Exception {
return new A1Service();
}
@Override
public Class<?> getObjectType() {
return A1Service.class;
}
}
更多推荐
所有评论(0)