Spring使用注解方式进行依赖注入与包扫描方式进行装配

本文介绍了在Spring中使用注解进行依赖注入的方法,强调了加入`<context:annotation-config>`的重要性。主要讨论了@Resource和@Autowire注解的区别,@Autowire支持按类型装配,并可选按名称装配,提供了更灵活的注入方式。同时,提到了通过包扫描减少XML配置的优化方案,但需要注意对象必须有无参构造器。
摘要由CSDN通过智能技术生成

命名空间的加入:使用注解方式完成依赖注入需要加入一个context命名空间
在这里插入图片描述
那么我们只需要在原来的java项目的基础上再UserServiceImpl中加入注解即可
注意:在使用注解时需要用:

<context:annotation-config></context:annotation-config>

在这里插入图片描述
此时对UserServiceImpl加入注解即可。
分别是 @Resource 该种方法很少使用了,因为其不支持泛型
现常用的时 @AutoWrited 其按照类型来装配,当然也可以只能按照名称来装配
在这里插入图片描述
注解方式的配置

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context.xsd 
        http://www.springframework.org/schema/tx 
        http://www.springframework.org/schema/tx/spring-tx.xsd" default-lazy-init="true">
        
        <!-- 使用注解方式来完成依赖对象的管理  需要加入一个context命名空间 -->
        <!-- 代表启用了注解方式来:如何实现
        1.@Resource 默认按照名称装配  Java提供的但现在很少用了,因为其不支持泛型注入
        2.Autowrited 默认按类型装配  支持泛型注入
        	延迟注入,在使用容器对象的时候才实例化对象
         -->
        <context:annotation-config></context:annotation-config>
        <!-- 将Dao交给spring容器统一管理 -->
		<bean id="userdao" class="com.demo.dao.UserDaoImpl"></bean>
		<bean id="userdao1" class="com.demo.dao.UserDaoImpl">
			<constructor-arg index="0" value="彭祥"></constructor-arg>
		</bean>
		<!-- 配置Service -->
		<bean id="userService" class="com.demo.service.UserServiceImpl">	
		</bean>
</beans>

而AutoWrited指定名称是用@Qualifier(value=“userdao”)
采用这种方式较优化
当然采用这种注解方式依然会让我们的xml配置文件很复杂,因此我们可以采用包扫描的方式来实现装配

在这里插入图片描述
注意包扫描只能通过空的构造函数来进行初始化。一旦不提供空的构造函数则会报错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

彭祥.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值