@Controller :定义一个控制器类(注入服务)
用于标注控制层,相当于struts中的action层
@RequestMapping:请求映射
@Resource:Spring会直接将UserDao类型的唯一一个bean赋值给userDao这个成员变量
@Autowired:Spring会调用setUserDao方法来将UserDao类型的唯一一个bean装配到userDao这个属性
使用Spring时,通过Spring注入的Bean一般都被定义成private,并且要有getter和setter方法,显得比较繁琐,增加了代码量,使用@Autowired可以减少代码量
public class TestServiceImpl {
// 下面两种@Autowired只要使用一种即可
@Autowired
private UserDao userDao; // 用于字段上
@Autowired
public void setUserDao(UserDao userDao) { // 用于属性的方法上
this.userDao = userDao;
}
}
@Qualifier:@Autowired是根据类型进行自动装配的。如果当Spring上下文中存在多个UserDao类型的bean时,就会抛出BeanCreationException异常;如果Spring上下文中不存在UserDao类型的bean,也会抛出BeanCreationException异常。我们可以使用@Qualifier配合@Autowired来解决这些问题
@PathVariable:将请求URL中的模板变量映射到功能处理方法的参数上,即取出uri模板中的变量作为参数
@requestParam :主要用于在SpringMVC后台控制层获取参数
@ResponseBody:(配合Controller使用)该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,入到Response对象的body数据区
@Repository :应用在导层,在daoImpl类上面注解
@Param():叁数与对应xml里的#{}里的内容一致,可以给参数自定义名字
@Service:(注入dao)
用于标注服务层,主要用来进行业务的逻辑处理
首先,在applicationContext.xml文件中加一行:
<context:component-scan base-package="com.ai"/>
加上这一行以后,将自动扫描路径com.ai下面的包,如果一个类带了@Service注解,将自动注册到Spring容器,不需要再在applicationContext.xml文件定义bean了,类似的还包括@Component、@Repository、@Controller。
@repository(实现dao访问)
用于标注数据访问层,也可以说用于标注数据访问组件,即DAO组件
.
@component (把普通pojo实例化到spring容器中,相当于配置文件中的 < bean id="" class=""/> )
@Data:去除Getter,Setter,equals,hashCode,toString方法
@Reference:将远程服务的service注入该属性中
@RestController:包含了@controller和@responsebody等注解