模拟注册功能-使用注解方式
模拟注册功能(使用注解方式)
DAO层代码
//@Component("userDao")
@Repository("userDao")
public class UserDaoImpl implements UserDao {
@Override
public void insert(User user) {
System.out.println("注册的Dao方法执行");
}
}
Service层代码
@Service("userService")
public class UserServiceImpl implements UserService {
/*@Autowired
@Qualifier("userDao")*/
@Resource(name="userDao")
private UserDao dao;
@Override
public void register(User user) {
dao.insert(user);
}
//因为要用
public void setDao(UserDao dao) {
this.dao = dao;
}
}
表现层代码
@Controller
public class UserController {
/*@Autowired
@Qualifier("userService")*/
@Resource(name="userService")
private UserService service;
public void register(User user) {
service.register(user);
}
}
测试代码
public class UserServletTest {
@Test
public void testSpring() throws Exception {
//创建用户对象:模拟接受用户参数,封装对象的过程
User user = new User();
user.setUsername("张三");
user.setPassword("admin");
UserController controller = context.getBean("userController",CustomerController.class);
//执行注册操作
controller.register(user);
}
}
applicationContext.xml
配置文件(只需要配置一个包扫描即可)
<!-- 配置包扫描
cn.xc.spring : 此包以及子包全部被扫描
-->
<context:component-scan base-package="cn.xc.spring"/>
纯注解配置
问题
我们发现,之所以我们现在离不开xml配置文件,是因为我们有一句很关键的配置:
<!-- 告知spring框架在,读取配置文件,创建容器时,扫描注解,依据注解创建对象,并存入容器中 -->
<context:component-scan