今天学习了Spring中的注解开发,相对于在xml中进行配置,注解开发就显得相当的简单了,大大提高了开发的效率。 下图是一个注释表格 1.在xml中配置组件扫描 package是需要扫描的包。
今天学习了Spring中的注解开发,相对于在xml中进行配置,注解开发就显得相当的简单了,大大提高了开发的效率。
下图是一个注释表格
1.在xml中配置组件扫描
package是需要扫描的包。
<context:component-scan base-package="com.wjb"/>
2.写注解
在Dao层,还可以用@Repository("userDao"),这个和@Component的区别就是名字有意义,更为方便。
在Service也可以用@Service()代替,和dao层一样。
UserDaoImpl.java
package com.wjb.dao.impl;
import com.wjb.dao.UserDao;
import org.springframework.stereotype.Component;
@Component("userDao") //注解,userDao相当于一个ID
public class UserDaoImpl implements UserDao {
//<bean id="userDao" class="com.wjb.dao.impl.UserDaoImpl"></bean>
@Override
public void save() {
System.out.println("save running....");
}
}
UserServiceImpl.java
//@Autowired //按照数据类型,在spring容器中进行匹配
//@Qualifier("userDao") //按照id值从容器中进行匹配,要结合@Autowired使用
@Resource(name = "userDao") //@Resource相当于@Autowired+@Qualifier
package com.wjb.service.impl;
import com.wjb.dao.UserDao;
import com.wjb.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;
// <bean id="userService" class="com.wjb.service.impl.UserServiceImpl">
@Component("userService")
public class UserServiceImpl implements UserService {
//<property name="userDao" ref="userDao"></property>
@Autowired
@Qualifier("userDao") //引用userDao对象
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
private UserDao userDao;
public void save() {
userDao.save(); //调用userDao对象方法
}
}