之前在applicationContext.xml是这样配置的:
现在用注解,就是把上面的各行按照意义变一下放到对应的类上面:
UserDao:
package cn.itcast.dao;
/**
* @author QLBF
* @version 1.0
* @date 2021/1/11 22:34
*/
public interface UserDao {
public void save();
}
UserService:
package cn.itcast.service;
/**
* @author QLBF
* @version 1.0
* @date 2021/1/11 22:35
*/
public interface UserService {
public void save();
}
UserDaoImpl:
package cn.itcast.dao.impl;
import cn.itcast.dao.UserDao;
import org.springframework.stereotype.Component;
/**
* @author QLBF
* @version 1.0
* @date 2021/1/11 22:34
*/
//<bean id="userDao" class="cn.itcast.dao.impl.UserDaoImpl"></bean>
@Component("userDao") //这里写的userDao是上面id
public class UserDaoImpl implements UserDao {
public void save() {
System.out.println("我是UserDaoImpl。。。");
}
}
UserServiceImpl:
package cn.itcast.service.impl;
import cn.itcast.dao.UserDao;
import cn.itcast.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;
/**
* @author QLBF
* @version 1.0
* @date 2021/1/11 22:36
*/
//<bean id="userService" class="cn.itcast.service.impl.UserServiceImpl">
@Component("userService") //这里userService是上面id
public class UserServiceImpl implements UserService {
//<property name="userDao" ref="userDao"></property>
@Autowired
@Qualifier("userDao") //userDao是上面ref的
private UserDao userDao;
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
public void save() {
userDao.save();
}
}
然后applicationContext.xml:
<?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">
<!--注解的组件扫描,必须加,不然spring扫不到你加到类上的注解-->
<context:component-scan base-package="cn.itcast"></context:component-scan>
</beans>
执行test:
package com.itcast;
import cn.itcast.service.UserService;
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.pool.DruidPooledConnection;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import java.sql.SQLException;
/**
* @author QLBF
* @version 1.0
* @date 2021/1/11 20:38
*/
@Test
//测试Spring容器产生druid数据源对象
public void test2() {
ApplicationContext app=new ClassPathXmlApplicationContext("applicationContext.xml");
UserService userService = app.getBean(UserService.class);
userService.save();
}
}
成功打印: