如何将一个对象或者类注册到Spring容器

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;
   }

}
Spring框架中,Spring容器(也称为IoC(Inversion of Control)容器或依赖注入容器)是一个核心组件,用于管理应用程序的对象生命周期和依赖关系。以下是创建和配置Spring容器的基本步骤: 1. **引入依赖**:首先需要在项目中添加Spring的依赖,如果你使用Maven,可以在pom.xml文件中添加`<dependency>`标签引入spring-context或更高版本。 ```xml <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.x.x</version> </dependency> ``` 2. **XML配置**:通过Spring的`beans.xml`或`applicationContext.xml`等配置文件,定义bean及其依赖关系。例如,可以声明一个@Component注解的作为bean,并指定它的属性值、构造函数参数或引用其他bean。 ```xml <bean id="myBean" class="com.example.MyClass"> <!-- 可能的属性设置 --> <property name="property1" value="value1"/> </bean> <!-- 或者使用构造函数注入 --> <bean id="anotherBean" class="com.example.OtherClass"> <constructor-arg ref="myBean"/> </bean> ``` 3. **启动容器**:在应用初始化时,通常会在main函数或特定启动上执行Spring的初始化过程,如`ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml")`。 4. **访问和使用bean**:通过`context.getBean()`方法获取已经注册的bean实例,然后就可以在其上下文中注入依赖并调用其方法。 ```java MyClass myInstance = (MyClass) context.getBean("myBean"); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值