Annotation中,常用的注释:
@Componet 描述spring中的一个bean
@Repository 将数据访问层(Dao层)的类标识为Spring中的bean
@Service 将业务层(Service层)的类标识为Spring中的bean
@Controller 将控制层的类标识为Spring中的bean
@Resource 有两个属性,name和type ,将name解析为Bean实例名称,type属性解析为Bean的实例类型。
用例子说明,如何使用。
UserDao接口
public interface UserDao {
public void save();
}
UserDaoImpl类,实现UserDao接口
import org.springframework.stereotype.Repository;
@Repository("userDao")//此处标注为bean
public class UserDaoImpl implements UserDao {
@Override
public void save() {
// TODO Auto-generated method stub
System.out.println("userDao...save...");
}
}
UserService接口
public interface UserService {
public void save();
}
UserServiceImpl类,实现UserService接口
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
@Service("userService")//标注为bean
public class UserServiceImpl implements UserService {
@Resource(name="userDao")//按bean的名称装配
private UserDao userDao;
public void setUserDao(UserDao userDao){
this.userDao=userDao;
}
@Override
public void save() {
// TODO Auto-generated method stub
this.userDao.save();
System.out.println("userservice...save...");
}
}
UserAction类
import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
@Controller("userAction")//标注为bean
public class UserAction {
@Resource(name="userService")//按bean的名称装配
private UserService userService;
public void setUserService(UserService userService){
this.userService=userService;
}
public void save(){
this.userService.save();
System.out.println("userAction...save...");
}
}
xml的配置
<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"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
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">
<!--使用context命名空间,通知spring扫描指定路径,进行注解的解析-->
<context:component-scan base-package="包名"></context:component-scan>
</beans>
心得体会:个人在运行的时候,报了个错误,java.lang.NoClassDefFoundError: org/springframework/aop/TargetSource,刚开始以为不是jar包的问题,因为jar包是根据老师说的导入的,结果搜索了下解决方法,确实是少了个jar包,spring的 spring-aop-4.x.x.RELEASE.jar