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

命名空间的加入:使用注解方式完成依赖注入需要加入一个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配置文件很复杂,因此我们可以采用包扫描的方式来实现装配

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

猜你喜欢

转载自blog.csdn.net/pengxiang1998/article/details/113052915