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

请尊重我们的辛苦付出,未经允许,请不要转载 本站 的文章,鄙视各种无耻的采集行为!

java 知识积累_java学习知识积累-spring常用注解相关推荐

  1. Java开发者必须掌握的20个Spring常用注解

    注解本身没有功能的,就和 xml 一样.注解和 xml 都是一种元数据,元数据即解释数据的数据,这就是所谓配置. 本文主要罗列 Spring|Spring MVC相关注解的简介. Spring部分 1 ...

  2. Java开发必须掌握的 20+ 种 Spring 常用注解

    点击上方"朱小厮的博客",选择"设为星标" 后台回复"加群"获取公众号专属群聊入口 来源:u6.gg/sSXQU 注解本身没有功能的,就和x ...

  3. Java 必须掌握的 12 种 Spring 常用注解

    转载自  Java 必须掌握的 12 种 Spring 常用注解 1.声明bean的注解 @Component 组件,没有明确的角色 @Service 在业务逻辑层使用(service层) @Repo ...

  4. Spring系列之Spring常用注解总结

    参看博客:https://www.cnblogs.com/xiaoxi/p/5935009.html 传统的Spring做法是使用.xml文件来对bean进行注入或者是配置aop.事物,这么做有两个缺 ...

  5. Spring常用注解总结

    传统的Spring做法是使用.xml文件来对bean进行注入或者是配置aop.事物,这么做有两个缺点: 1.如果所有的内容都配置在.xml文件中,那么.xml文件将会十分庞大:如果按需求分开.xml文 ...

  6. spring autowired idea都匹配上了_你清楚这几个Spring常用注解吗?

    作者:平凡希http://cnblogs.com/xiaoxi/p/5935009.html 传统的Spring做法是使用.xml文件来对bean进行注入或者是配置aop.事物,这么做有两个缺点: 如 ...

  7. Spring常用注解 - 使用注解来构造IoC容器

    Spring常用注解 使用注解来构造IoC容器 用注解来向Spring容器注册Bean.需要在applicationContext.xml中注册<context:component-scan b ...

  8. autowired注解_Spring系列之Spring常用注解总结

    作者:平凡希来源:https://www.cnblogs.com/xiaoxi/p/5935009.html 传统的Spring做法是使用.xml文件来对bean进行注入或者是配置aop.事物,这么做 ...

  9. sessionattribute 被spring 扫描不到_Spring 系列之 Spring 常用注解总结(肝硬化的干货)...

    传统的Spring做法是使用.xml文件来对bean进行注入或者是配置aop.事物,这么做有两个缺点: 1. 如果所有的内容都配置在.xml文件中,那么.xml文件将会十分庞大:如果按需求分开.xml ...

最新文章

  1. 力扣——整数反转(Java)
  2. 请求和响应向更多内容
  3. 【ZOJ - 3591】Nim(博弈问题,思维,STLmap)
  4. 2017年网易校招题 输入一个数将其变为斐波那契数(最小步数)
  5. 【原创】STM32工程新建步骤
  6. 2.4 残差网络为什么有用?
  7. React 错误Each child in an array or iterator should have a unique “key” prop
  8. 201771010111李瑞红《第十六周学习总结》
  9. 单目深度估计方法:算法梳理与代码实现
  10. python分离gif_python 将GIF拆分成图片方法
  11. 萤石云 UIKit Javascript 使用
  12. typo:in word ‘ ‘ 问题解决方法
  13. 数据库操作的异常Cannot perform this operation because the connection pool has been close
  14. oracle中月初月末的表示
  15. 什么是数据挖掘?数据挖掘的目标是什么?
  16. 在测试中实施人工智能
  17. 数据分析技术:时间序列分析的AR/MA/ARMA/ARIMA模型体系
  18. Oracle安装步骤(记录)
  19. 《奇点临近》奇点和六大纪元
  20. 一篇文章让你搞定火山图,Volcano plot详解

热门文章

  1. IDEA异常解决: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)
  2. 你所不知道的SQL Server数据库启动过程,以及启动不起来的各种问题的分析及解决技巧
  3. 解决sublime text 3使用Install Package时出现There are no packages available for installation问题
  4. Python中的字符串比较:与== [重复]
  5. node.js删除文件
  6. 什么是C ??!??!操作员呢?
  7. 确定两个日期范围是否重叠
  8. 为什么numba不能提高背包功能的速度?
  9. ros中订阅/map话题,获取地图尺寸,获取机器人原点origin,获取地图分辨率resolution (c++,python,waitForMessage,wait_for_message)
  10. c# 批量mqtt_Paho-MQTT C#接入示例