• 第一个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
  • 相关阅读:
    js+jq 淡入淡出轮播(点击+定时+鼠标进入移出事件)
    DBCA静默方式建库
    Oracle 11g常用管理命令(用户、表空间、权限)
    RedHat 7.3 Oracle 12.2.0.1 RAC 安装手册(转)
    rsyslog和logrotate服务
    Linux 之 rsyslog 系统日志转发
    Flatty Shadow图标自动产生器——在线生成各种扁平化 ICON
    助力前端开发——20个精心挑选新鲜好用的前端开发工具
    15款新鲜出炉的实用网页设计工具
    提供免费可商用的优秀背景视频素材——COVERR
  • 原文地址:https://www.cnblogs.com/qzg3362/p/9240530.html
Copyright © 2020-2023  润新知