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