java学习知识积累-spring常用注解
类的分层注解,由于我们后台开发都是分为三层进行开发的,所以Spring框架提供了三种对于不同层的注解方式:
控制层:@Controller
服务层:@Service
持久层:@Repository
以下是具体的案列解析:
1、@Controller
对应表现层的Bean,也就是Action,例如:
@Controller
@RequestMapping(value = "login")
public class LoginController {
.....
}
1
2
3
4
5
@Controller
@RequestMapping(value="login")
publicclassLoginController{
.....
}
2、@Service
对应的是业务层Bean,例如:
@Service
public class UserService {
....
}
1
2
3
4
@Service
publicclassUserService{
....
}
3、@Repository
对应数据访问层Bean ,例如:
@Repository
public interface UserReportMapper {
....
}
1
2
3
4
@Repository
publicinterfaceUserReportMapper{
....
}
4、@Autowired
进行注入式注解(不推荐使用,建议使用@Resource).以下是两种方式:
@Autowired
private UserReportMapper userReportMapper;
1
2
@Autowired
privateUserReportMapperuserReportMapper;
private UserDao userDao;
@Autowired
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
1
2
3
4
5
privateUserDaouserDao;
@Autowired
publicvoidsetUserDao(UserDaouserDao){
this.userDao=userDao;
}
5、@RequestMapping
一个用来处理请求地址映射的注解,可用于类或方法上。
@RequestMapping(value = "index.html")
public String toNewIndex(Model model) {
.....
}
1
2
3
4
@RequestMapping(value="index.html")
publicStringtoNewIndex(Modelmodel){
.....
}
6、@ResponseBody
@ResponseBody 将内容或对象作为 HTTP 响应正文返回,并调用适合HttpMessageConverter的Adapter转换对象,写入输出流。
@ResponseBody
public String doPost(UserVo userVo, HttpServletRequest request) {
...
}
1
2
3
4
@ResponseBody
publicStringdoPost(UserVouserVo,HttpServletRequestrequest){
...
}
7、@overrider
重写
/*菜鸟笔记
Java 中的覆盖@Override注解 写与不写的一点点理解
一般来说,写与不写没什么区别,JVM可以自识别
写的情况下:即说明子类要覆盖基类的方法,基类必须存在方法
(控制类型public,protected,返回值,参数列表类型)与子类方法完成一致的方法,否则会报错(找不到被Override的方法)。
在不写@Override注解的情况下,当基类存在与子类各种条件都符合的方法是即实现覆盖;
如果条件不符合时,则是当成新定义的方法使用。
所以如果想覆盖基类方法时,最好还是写上@Override注解,这样有利于编译器帮助检查错误
*/
1
2
3
4
5
6
7
8
9
/*菜鸟笔记
Java 中的覆盖@Override注解 写与不写的一点点理解
一般来说,写与不写没什么区别,JVM可以自识别
写的情况下:即说明子类要覆盖基类的方法,基类必须存在方法
(控制类型public,protected,返回值,参数列表类型)与子类方法完成一致的方法,否则会报错(找不到被Override的方法)。
在不写@Override注解的情况下,当基类存在与子类各种条件都符合的方法是即实现覆盖;
如果条件不符合时,则是当成新定义的方法使用。
所以如果想覆盖基类方法时,最好还是写上@Override注解,这样有利于编译器帮助检查错误
*/
@Override
public Map toMap() {
Map map = new HashMap<>();
map.put("statu", Constants.LOGIN_SUCCESS);
map.put("userId", userVo.getId());
return map;
}
1
2
3
4
5
6
7
@Override
publicMaptoMap(){
Mapmap=newHashMap<>();
map.put("statu",Constants.LOGIN_SUCCESS);
map.put("userId",userVo.getId());
returnmap;
}
8、@Transactional
方法需要事务管理
@Transactional
//用户修改账号密码
public int updatePassword(int id, String oldPw, String newPw, int type) {
....
}
1
2
3
4
5
@Transactional
//用户修改账号密码
publicintupdatePassword(intid,StringoldPw,StringnewPw,inttype){
....
}
9、@Component
把普通pojo实例化到spring容器中
@Component
public class PartnerConfig{
....
}
1
2
3
4
@Component
publicclassPartnerConfig{
....
}
10、 @Override
重写,并让系统可以帮你检查方法的正确性
@Override
public Map<String, Object> toMap() {
Map<String, Object> map = new HashMap<>();
map.put("statu", Constants.LOGIN_SUCCESS);
map.put("userId", userVo.getId());
return map;
}
1
2
3
4
5
6
7
@Override
publicMap<String,Object>toMap(){
Map<String,Object>map=newHashMap<>();
map.put("statu",Constants.LOGIN_SUCCESS);
map.put("userId",userVo.getId());
returnmap;
}
11、@value
注解获取”resources”下的*.porperties文件的内容
payment.yt.busiPartner=101001
1
payment.yt.busiPartner=101001
@Value("${payment.yt.busiPartner}")
private String busiPartner;
1
2
@Value("${payment.yt.busiPartner}")
privateStringbusiPartner;
12、SuppressWarnings
告诉它对被批注的代码元素内部的某些警告保持静默。
1
@SuppressWarnings("unchecked")
@RequestMapping(value = "loanexper/ajax")
@ResponseBody
public String getAllJson(BaseVo vo,HttpServletRequest request) {
....
}
1
2
3
4
5
6
@SuppressWarnings("unchecked")
@RequestMapping(value="loanexper/ajax")
@ResponseBody
publicStringgetAllJson(BaseVovo,HttpServletRequestrequest){
....
}
1
请尊重我们的辛苦付出,未经允许,请不要转载 本站 的文章,鄙视各种无耻的采集行为!