使用注解简化Spring配置文件

组件扫描:Spring容器启动之后会检查某个包以及子包下面所有的类。如果类前面有特定的注解(比如@Component),则容器会将该类纳入容器进行管理。(使用注解的方式使我们无需在XML中配置一个Bean引用,相当于配置了一个Bean元素)
注解配置默认情况下在Spring中是关闭的,我们需要在配置为文件中使用激活它。

<?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"
       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-3.0.xsd">

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

一旦激活注解配置后,我们就可以在代码中使用注解来进行依赖注入。其中下面是几个重要的注解:

@Required:注解应用于bean属性的setter方法。
@Autowired:注解可以应用到bean属性的setter方法,非setter方法,构造函数和属性

@Qualifier,通过指定确切的将被引用的bean,@Autowired和@Qualifier注解可以用来删除混乱

删除spring配置文件中的原有对象bean的配置

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">

	<!-- 需要一个数据源对象 -->
	<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
		<property name="driverClassName" value="com.mysql.jdbc.Driver" />
		<property name="url" value="jdbc:mysql://127.0.0.1:3306/userdb?characterEncoding=UTF-8" />
		<property name="username" value="root" />
		<property name="password" value="root" />
	</bean>
	<!-- 创建SQL的执行对象 -->
	<bean id="qr" class="org.apache.commons.dbutils.QueryRunner" scope="prototype">
		<!-- 构造函数创建对象 -->
		<constructor-arg name="ds" ref="dataSource" />
	</bean>	
</beans>

IOC与DI的注解配置

注解存在的意义 : XML的另外一种配置方案而已,它能够减少我们在XML中配置的bean标签的数量,从而简化XML配置

主要用途 : 配置bean

@Component = <bean id="" class="" />
@Component("userDAO") = <bean id="userDAO" class="com.hnxy.dao.impl.UserDAOImpl" />

最起码注解的好处就是 你不用再指定类型

但是 此处需要注意的是,你的bean虽然创建完了 但是它被创建在类中了 spring配置文件并不知道你有这个bean

所以我们必须让spring知道我们现在有一个bean在UserDAOImpl
那么我们怎么让spring配置文件知道我有这么一个bean

其实 spring给你提供了一个 注解bean的包扫描器的功能可以通过配置包扫描器 扫描某个包下的所有注解bean

那么此处我们怎么配置注解bean的包扫描器呢?

引入相关的功能 这个包扫描器的功能 在spring-context这个包下,所以我们要引入
这个context功能
声明引入功能标签

你可能感兴趣的:(使用注解简化Spring配置文件)