zoukankan      html  css  js  c++  java
  • 第一个spring-boot项目

    1.配置文件  application.yml
    spring:
    profiles:
    active: dev
    datasource:
    driver-class-name: oracle.jdbc.driver.OracleDriver
    url: jdbc:oracle:thin:@localhost:1521:xe
    username: system
    password: 123456
    jpa:
    hibernate:
    ddl-auto: update
    show-sql: true

    1.读取配置文件的内容.

    server:
      port: 8081
      context-path: /boot
    
    service:
      name: freya
    version: 1.1

     (1).@Value("${service.name}") 

          private String name ;

      (2).使用Environment,env.getProperty("键名")

               @Autowired
        private Environment env;
    
        @RequestMapping(value = "/hello")
        public String hello() {
            return "hello spring boot! " + env.getProperty("service.name");
        }
    (3)
    自定义一个实体类
    @Component
    @ConfigurationProperties(prefix = "project")  //配置文件中前缀
    @PropertySource(value = "classpath:config/config.properties") //文件位置
    public class MyConfig {
        private String version;
        private String name;
    
        public String getVersion() {
            return version;
        }
    
        public void setVersion(String version) {
            this.version = version;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    }
    在controller中获取
    RestController
    public class HelloController {
    
        @Autowired
        private MyConfig myConfig;
    
        @RequestMapping(value = "/hello")
        public String hello() {
            return "hello spring boot! " myConfig.getVersion() + " " +  myConfig.getName() ;
        }
    }

    2.表单提交

    controller层
    @PostMapping("/save")
    public Girl save(@Valid Girl girl, BindingResult bindingResult){
    if(bindingResult.hasErrors()){
    System.out.print(bindingResult.getFieldError().getDefaultMessage());
    return null;
    }
    girl.setAge(girl.getAge());
    girl.setCupSize(girl.getCupSize());
    girl.setMoney(girl.getMoney());
    return girlRepository.save(girl);
    }

      实体类

    @Entity  //对应数据库中的表
    public class Girl{

    @Id //主键
    @GeneratedValue 自增,从1开始
    private Integer id;

    @Min(value = 18,message = "未成年") //最小值为18,不满足返回message的值
    private Integer age;
    private String cupSize;

    @Min(value = 0,message = "金额必传")
    private Double money;

     3.自定义异常  (codeEnum为枚举类型,方便管理异常状态码与返回信息)

    public class GirlException extends RuntimeException{
    private String respCode;

    public GirlException(CodeEnum codeEnum) {
    super(codeEnum.getMsg());
    this.respCode = codeEnum.getCode();
    }
    public GirlException(String message,String code) {
    super(message);
    this.respCode = code;
    }
    public String getRespCode() {
    return respCode;
    }

    public void setRespCode(String respCode) {
    this.respCode = respCode;
    }
    }

    //枚举实体public enum CodeEnum {
        ERROR_CODE("-1","系统异常"),
    OK_CODE("0","OK"),
    PRE_SCHOOL("100","你可能还在上小学吧"),
    HIGH_SCHOOL("101","你可能还在上中学吧");

    CodeEnum(String code, String msg) {
    this.code = code;
    this.msg = msg;
    }
    private String code;
    private String msg;

    public String getCode() {
    return code;
    }

    public String getMsg() {
    return msg;
    }
    }
    /**
     * 捕捉异常类  (handle)
    */
    @ControllerAdvice
    public class ExceptionHandle {

    @ExceptionHandler
    @ResponseBody
    public ResultMap handle(Exception e){
    if(e instanceof GirlException){
    GirlException girlException = (GirlException) e;
    return ResultMap.error(girlException.getRespCode(),girlException.getMessage(),"");
    }
    return ResultMap.error(e.getMessage());
    }
    }

    /**
    * spring-boot ao
    */
    @Aspect
    @Component
    public class HttpAspect {

    private static final Logger log = LoggerFactory.getLogger(HttpAspect.class); //spring中自带的日志包

    @Pointcut("execution(* com.girl.controller.GirlController.*(..))")
    public void log(){}

    @Before("log()")
    public void log1(){
    //获取request请求
    RequestAttributes ra = RequestContextHolder.getRequestAttributes();
    ServletRequestAttributes sra = (ServletRequestAttributes) ra;
    HttpServletRequest request = sra.getRequest();
    log.info("id={}",request.getRemoteAddr()); //日志信息将输出在{}中

    }
    }

    多模块部署:
    https://www.imooc.com/video/16354
  • 相关阅读:
    Java实现 LeetCode 382 链表随机节点
    Java实现 LeetCode 382 链表随机节点
    Java实现 LeetCode 381 O(1) 时间插入、删除和获取随机元素
    Java实现 LeetCode 381 O(1) 时间插入、删除和获取随机元素
    Java实现 LeetCode 381 O(1) 时间插入、删除和获取随机元素
    Java实现 LeetCode 380 常数时间插入、删除和获取随机元素
    Java实现 LeetCode 380 常数时间插入、删除和获取随机元素
    Linux下的iwpriv(iwlist、iwconfig)的简单应用
    OCX控件的注册卸载,以及判断是否注册
    .OCX、.dll文件注册命令Regsvr32的使用
  • 原文地址:https://www.cnblogs.com/qzg3362/p/9240530.html
Copyright © 2011-2022 走看看