注解含义学习记录

1、@Service

用于业务层组件,如果一个类带了@Service注解,将自动注册到Spring容器,不需要再在applicationContext.xml文件定义bean了

@Service("userService")

public class UserServiceImpl implements UserService{

}

示例表示将userServiceImpl自动注册到spring容器

 

2、@Autowired

通过@Autowired注解对Bean的属性变量属性Setter方法以及构造函数进行标注配合AutowiredAnnotationBeanProcessor完成Bean的自动配置

3、@Qualifier

@Autowired遇到多个匹配Bean时注入会发生错误,此时通过@Qualifier可以表示哪个实现类才是需要的

@Autowired

@Qualifier("userDao")

UserDao userDao;

示例表示将userDao自动注册到spring容器并且被userDao注解的类时其实现类

 

4、@Controller和@RequestMapping

使用@Controller 标记一个类是Controller然后使用@RequestMapping注解用以定义URL请求和Controller方法之间的映射,这样的Controller就能被外界访问到

@Controller

@RequestMapping("/user")

public class UserController {}

 

@RequestMapping用于标记一个方法

@RequestMapping("/login.do")

public @ResponseBody State dealLogin(HttpServletRequest request, HttpServletResponse response){}

 

5、@ResponseBody

该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。

public @ResponseBody State dealLogin(HttpServletRequest request,HttpServletResponse response){

System.out.println("登录请求已提交");

String username = (String) request.getParameter("username");

String password = (String) request.getParameter("password");

System.out.print(username+" "+password);

User user = new User();

user.setPassword(password);

user.setUsername(username);

boolean exist = userService.dealLogin(user);

State state = new State();

state.setCode("1");

state.setInfo(Boolean.toString(exist));

System.out.println("登录请求处理完毕");

return state;

}

示例中用@ResponseBody注解dealLogin()的返回数据类型,当对前台数据做完处理后,以json的数据格式返回用户的状态。