Spring boot(二)
来源:互联网 发布:快速背单词软件 编辑:程序博客网 时间:2024/06/06 17:19
controller:
package com.imooc.girl.controller;import com.imooc.girl.entity.Result;import com.imooc.girl.repository.GirlRepository;import com.imooc.girl.entity.Girl;import com.imooc.girl.service.GirlService;import com.imooc.girl.utils.ResultUtil;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.validation.BindingResult;import org.springframework.web.bind.annotation.*;import javax.validation.Valid;import javax.validation.constraints.Min;import java.util.List;@RestControllerpublic class GirlController { @Autowired private GirlRepository girlRepository; @Autowired private GirlService girlService; @RequestMapping("/findAll" ) public List<Girl> findAll(){ System.out.println("来了吧 。。。。"); return girlRepository.findAll(); } @PostMapping("/add") public Result<Girl> add(@Valid Girl girl, BindingResult bindingResult){ if(bindingResult.hasErrors()){ return ResultUtil.error(0,bindingResult.getFieldError().getDefaultMessage()); } return ResultUtil.success(girlRepository.save(girl)); } @GetMapping("/query/{id}") public void query(@PathVariable("id") Integer id)throws Exception{ girlService.getAge(id); } @PutMapping("/update/{id}/{cupSize}/{age}") public Girl update(@PathVariable("id") Integer id,@PathVariable("cupSize")String cupSize, @PathVariable("age")Integer age){ Girl girl = new Girl(); girl.setId(id); girl.setAge(age); girl.setCupSize(cupSize); return girlRepository.save(girl); } @DeleteMapping("/update/{id}") public void delete(@PathVariable("id") Integer id){ girlRepository.delete(id); }}
package com.imooc.girl.service;import com.imooc.girl.entity.Girl;import com.imooc.girl.exception.MyException;import com.imooc.girl.repository.GirlRepository;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;@Servicepublic class GirlService { @Autowired private GirlRepository girlRepository; public void getAge(Integer id) throws Exception{ Girl girl=girlRepository.findOne(id); Integer age=girl.getAge(); if(age<10){ throw new MyException(101,"你在上小学吧"); }else if(age >10&&age<20) { throw new MyException(102,"你可能在上初中吧 "); } }}
Repository:
package com.imooc.girl.repository;import com.imooc.girl.entity.Girl;import org.springframework.data.jpa.repository.JpaRepository;public interface GirlRepository extends JpaRepository <Girl,Integer>{}
entity:
package com.imooc.girl.entity;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.stereotype.Component;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.validation.constraints.Min;import javax.validation.constraints.NotNull;@Entitypublic class Girl { @Id @GeneratedValue private Integer id; private String cupSize; @Min(value=18,message = "未成年少女禁止入内") private Integer age; @NotNull(message = "金额不能为空") private String money; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getCupSize() { return cupSize; } public void setCupSize(String cupSize) { this.cupSize = cupSize; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public String getMoney() { return money; } public void setMoney(String money) { this.money = money; } // public Girl() {// } @Override public String toString() { return "Girl{" + "id=" + id + ", cupSize='" + cupSize + '\'' + ", age=" + age + '}'; }}
package com.imooc.girl.entity;/** * http请求返回的 最外层 对象 */public class Result<T> { private Integer code; private String msg; private T data; public Integer getCode() { return code; } public void setCode(Integer code) { this.code = code; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } public T getData() { return data; } public void setData(T data) { this.data = data; }}
AOP处理类
package com.imooc.girl.adpect;import org.aspectj.lang.JoinPoint;import org.aspectj.lang.annotation.*;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.http.HttpRequest;import org.springframework.stereotype.Component;import org.springframework.web.context.request.RequestContextHolder;import org.springframework.web.context.request.ServletRequestAttributes;import javax.servlet.http.HttpServletRequest;@Aspect@Componentpublic class HttpAspect { private final static Logger logger= LoggerFactory.getLogger(HttpAspect.class); @Pointcut("execution(public * com.imooc.girl.controller.GirlController.*(..) )") public void log(){ } @Before("log()") public void log1(JoinPoint joinPoint){ ServletRequestAttributes attributes=(ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); HttpServletRequest request=attributes.getRequest(); //url logger.info("url={}",request.getRequestURL()); //method logger.info("url={}",request.getMethod()); //ip logger.info("url={}",request.getRemoteAddr()); //类方法 logger.info("class_method={}",joinPoint.getSignature().getDeclaringTypeName()+"."+joinPoint.getSignature().getName()); //类的参数 logger.info("args={}",joinPoint.getArgs()); } @After("log()") public void log2(){ logger.info("2222"); } @AfterReturning(returning = "object",pointcut = "log()") public void afterReturn(Object object){ logger.info("response={}",object.toString()); }}
自定义异常处理:
package com.imooc.girl.exception;import com.imooc.girl.entity.Result;import com.imooc.girl.utils.ResultUtil;import org.springframework.web.bind.annotation.ControllerAdvice;import org.springframework.web.bind.annotation.ExceptionHandler;import org.springframework.web.bind.annotation.ResponseBody;@ControllerAdvicepublic class ExceptionHandle { @ExceptionHandler(value=Exception.class) @ResponseBody public Result handle(Exception e){ if(e instanceof MyException){ MyException my= (MyException)e; return ResultUtil.error(my.getCode(),my.getMessage()); }else{ return ResultUtil.error(100,e.getMessage()); } }}
package com.imooc.girl.exception;public class MyException extends RuntimeException { private Integer code; public MyException(Integer code,String message) { super(message); this.code = code; } public Integer getCode() { return code; } public void setCode(Integer code) { this.code = code; }}
utils类
package com.imooc.girl.utils;import com.imooc.girl.entity.Result;public class ResultUtil { public static Result success(Object object){ Result result=new Result(); result.setCode(1); result.setMsg("成功 "); result.setData(object); return result; } public static Result success(){ return success(null); } public static Result error(Integer code,String msg){ Result result=new Result(); result.setCode(code); result.setMsg(msg); return result; }}
application.yml
spring: profiles: active: dev datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://192.168.1.178:3306/girl password: root username: root jpa: hibernate: ddl-auto: update show-sql: true
枚举改善自定义异常:
添加枚举类
package com.imooc.girl.enums;public enum ResultEnum { UNKNOW_ERROR(-1,"未知错误"), SUCCESS(0,"成功"), PRIMARY_SCOOL(100,"你可能上的是小学"), MIDDLE_SCOOL(200,"你可能上的是中学"), ; private Integer code; private String msg; ResultEnum(Integer code, String msg) { this.code = code; this.msg = msg; } public Integer getCode() { return code; } public String getMsg() { return msg; }}
Service调整:
package com.imooc.girl.service;import com.imooc.girl.entity.Girl;import com.imooc.girl.enums.ResultEnum;import com.imooc.girl.exception.MyException;import com.imooc.girl.repository.GirlRepository;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;@Servicepublic class GirlService { @Autowired private GirlRepository girlRepository; public void getAge(Integer id) throws Exception{ Girl girl=girlRepository.findOne(id); Integer age=girl.getAge(); if(age<10){ throw new MyException(ResultEnum.PRIMARY_SCOOL); }else if(age >10&&age<20) { throw new MyException(ResultEnum.MIDDLE_SCOOL); } }}
自定义异常类改善
package com.imooc.girl.exception;import com.imooc.girl.enums.ResultEnum;public class MyException extends RuntimeException { private Integer code; public MyException(ResultEnum resultEnum) { super(resultEnum.getMsg()); this.code = resultEnum.getCode(); } public Integer getCode() { return code; } public void setCode(Integer code) { this.code = code; }}
阅读全文
0 0
- spring boot (二) 配置文件
- Spring boot(二)
- Spring Boot学习(二)
- Spring Boot (二)
- Spring Boot(二)
- Spring boot(二)
- Spring Boot教程二
- spring-boot研究二:spring-boot单元测试
- Spring Boot (二) Spring Boot for JSP
- spring boot(二):web综合开发
- Spring Boot实战(二)
- [二]Spring Boot 热部署
- Spring Boot (二):Web 综合开发
- spring boot(二):web综合开发
- spring-boot入门(二)
- spring boot集成mysql(二)
- spring-boot(二) 整合jpa
- spring boot(二):web综合开发
- ASPEN Aspenone V8.0化工流程模拟软件送8G\
- 动态增加div,实现div之间的切换,不刷新页面
- 已知两个链表head1 和head2 各自有序,请把它们合并成一个链表依然有序。
- Android状态栏微技巧,带你真正理解沉浸式模式
- 内省
- Spring boot(二)
- scala基础4⃣️集合
- 稳定排序:如果Ai = Aj,Ai原来在位置前,排序后Ai还是要在Aj位置前
- linux系统调用列表
- HDU6170【DP+树状数组+差分维护】
- StarFarming
- POJ-1847 Tram( 最短路 )
- 记录lombok的使用
- 浅析进程与线程的亲戚关系