component注解
把类交给spring容器让他帮忙管理,用的时候只需要用Autowired方法自动装配就好了,不需要用new方法新建对象
1、在spring配置文件里加上
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
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
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!-- 引入db.properties文件 -->
<context:property-placeholder location="classpath:db.properties"/>
<!-- 获取数据库连接池对象dateSource -->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<!-- 获取sqlSessionFactory对象 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<!-- Mapper文件地址 -->
<property name="mapperLocations" value="classpath:mappers/*.xml"/>
</bean>
<!-- 获取sqlSession对象 -->
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactory"/>
</bean>
<!-- 加上这句,用于spring扫描有component注解的文件 -->
<context:component-scan base-package="cn.yznu"/>
<!-- cn.yznu表示在yznu包下有带注解的文件 -->
</beans>
2、调用
User.java用了component注解所以UserService这个类就可以用Autowired装配,同时还有用@Value
注解的uid=1
和username=wqk
这两个初始值。
有用@Value
注解的uid=1
和username=wqk
这两个初始值。
同理UserService也用了component注解所以TestUser1这个类就可以Autowired装配,sqlSession是在spring.xml容器里就配置好的可以直接使用