java 知识积累_java学习知识积累-spring常用注解

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值