Spring之基于注解装配Bean

一、基于XML实现

首先需要在XML中加入如下代码

	<!--    允许使用注解完成bean的自动装配-->
	<context:annotation-config></context:annotation-config>
	<bean id="myCar" class="com.project.CarBean">
	    <property name="name" value="迈凯伦"></property>
	</bean>

1、@Autowired

作用:装配Bean。

用法:①配置在属性上 ②配置在set方法上 ③配置在构造方法上

注:@Autowired注解是按类型装配依赖对象,如果有多个类型则按名称匹配。默认情况下它要求依赖对象必须存在,如果允许null值,可以设置它required属性为false。

2、@Qualifier

作用:配合@Autowired使用。把按类型配置变为按名称匹配。

配置:①配置在属性上 ②配置在set方法上

	@Autowired
	//自动装配bean对象 -- 按照类型装配
	@Qualifier
	//Autowired使用,将Autowired装配方式改为由名称匹配
	 private CarBean carBean;

3、@Resource

作用:装配Bean。

用法:①配置在属性上 ②配置在set方法上

• @Resource是JSR-250规范定义的规范。

• @Resource注解默认按名称装配。名称可以通过name属性指定,如果没有指定name属性,默认取属性的名称作为bean名称寻找依赖对象。

注:如果没有指定name属性,并且按照默认的名称找不到依赖对象时, @Resource会回退到按类型装配。但一旦指定了name属性,就只能按名称装配了。

	@Resource(name = "myCar")
	private CarBean carBean;

4、@PostConstruct与@PreDestroy

作用:指定初始化方法与销毁方法。

用法:配置在自定义的初始化方法和销毁方法上。

    @PostConstruct
    //bean对象初始化时调用的方法
    //无参公共方法
    public void init() {
        System.out.println("学生初始化");
    }

    @PreDestroy
    //bean对象被销毁之前调用的方法
    //无参公共方法
    public void destroy() {
        System.out.println("学生销毁");
    }

• @PostConstruct与@PreDestroy是JSR-250规范定义的规范。

• 初始化方法在容器产生Bean对象的时候被调用。

• 销毁方法在容器主动调用销毁的时候被调用。

• 容器只管理单例Bean的销毁。

• 两个方法必须是无参的公共方法。

二、基于类实现配置

创建一个配置类Config

1、@Configuration

作用:标识当前类为Spring配置类,以此代替xml文件,从而实现零配置。

设置了@Configuration注解的类称为中心服务类,负责注入所需的Bean对象。

	@Configuration
	public class Config {
	
	}

2、@ComponentScan

作用:指定扫描的包,在中心服务类前加注解。

	//basePackages指定从哪个包开始扫描
	@ComponentScan(basePackages = "com.project")
	//basePackageClasses 指定从哪个类所在的包开始扫描
	//@ComponentScan(basePackageClasses = ApplicationConfig.class)
	public class ApplicationConfig {
	
	}

3、@Component

作用:标识需要装配的类,在需要装配的类前加注解。

容器被创建时,此类会自动创建一个对象,并由容器进行管理
	@Component
	public class StudentBean {
	
	}

4、@Autowired

    @Autowired
    IUserDao userDao;

5、实现

	//加载配置类 完成容器的创建
	ApplicationContext context = new AnnotationConfigApplicationContext(Config.class);
	IUserService service = context.getBean(UserServiceImpl.class);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring中,我们可以使用注解来配置和装配Bean,这可以使我们的代码更加简洁和易于维护。下面是关于如何基于注解配置和装配Bean的一些简要介绍: 1. 基于注解配置Bean 在Spring中,我们可以使用以下注解来配置Bean: - @Component:表示该类是一个Spring Bean,需要被Spring容器管理。 - @Service:表示该类是一个服务层的Bean。 - @Controller:表示该类是一个控制层的Bean。 - @Repository:表示该类是一个数据访问层的Bean。 这些注解都是基于@Component注解的衍生注解,它们的作用是更加明确地表示Bean的角色。我们可以在Bean类上添加这些注解,告诉Spring容器该类需要被管理。例如: ``` @Service public class UserService { // ... } ``` 2. 基于注解装配Bean 在Spring中,我们可以使用以下注解装配Bean: - @Autowired:自动装配Bean。 - @Qualifier:指定具体的Bean名称进行装配。 - @Resource:指定具体的Bean名称进行装配,与@Qualifier类似。 - @Value:注入一个具体的值。 使用@Autowired注解进行自动装配时,Spring会自动在容器中寻找与该类型匹配的Bean,并将其注入到类的属性中。例如: ``` @Service public class UserService { @Autowired private UserDao userDao; // ... } ``` 使用@Qualifier或@Resource注解可以指定具体的Bean名称进行装配。例如: ``` @Service public class UserService { @Autowired @Qualifier("userDaoImpl") private UserDao userDao; // ... } ``` 使用@Value注解可以注入一个具体的值。例如: ``` @Service public class UserService { @Value("10") private int maxCount; // ... } ``` 以上就是关于Spring中基于注解配置和装配Bean的简要介绍,希望能对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值