spring boot

http://www.cnblogs.com/taozhiye/p/6599738.html

 

1   maven中spring-boot版本同意管理,有parent和dependencyManagement两种方式,

    parent有点像extends父类,dependencyManagement有点像implements接口

2spring boot 如何搞一个控制台程序

 3  maven里面scop写provided是什么意思

  编译的时候要用,但是又不能把把打进war包,因为tomcat里面已经有了

4  打war包的时候要把tomcat包排除掉

 5   如果想用jetty,就需要denpendency  spring-boot-starter-jetty,然后再排除掉srping-boot-starter-web中的tomcat包

6     生产环境    开发环境   application-dev.yaml    application-pro.yaml 

7   如何配置热启动

     1   加入dependency    spring-boot-devtools

    2  setting里面  complier   --  build  project automobitly

    3  registery  --  complier *** running

 

  

 

 

 8   lombok插件的使用

    1  依赖   org.projectlombok     lombok

    2   下载插件

    3   开启注解processor(注解处理器)。。。。

 

 

 

 

9  日志的定制

在resourse下加入logback-spring.xml

<?xml version="1.0" encoding="UTF-8"?>

<!--
Base logback configuration provided for compatibility with Spring Boot 1.1
-->
<configuration>
    <include resource="org/springframework/boot/logging/logback/defaults.xml" />
    <include resource="org/springframework/boot/logging/logback/console-appender.xml" />
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <encoder>
            <pattern>${FILE_LOG_PATTERN}</pattern>
        </encoder>
        <!--不知怎么老是说G:/hello.log不存在?-->
        <!--<file>${LOG_FILE:-/G:/hello.log}</file>-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>logFile.%d{yyyy-MM-dd}.log</fileNamePattern>
            <maxHistory>14</maxHistory>
        </rollingPolicy>
    </appender>
    <!--将日志收集发送到kafka  rsyslog的appender-->

    <root level="INFO">
        <appender-ref ref="CONSOLE" />
        <appender-ref ref="FILE" />
    </root>

</configuration>

<!--<included>-->
    <!--<include resource="org/springframework/boot/logging/logback/defaults.xml" />-->
    <!--<property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}}/spring.log}"/>-->
    <!--<include resource="org/springframework/boot/logging/logback/console-appender.xml" />-->
    <!--<include resource="org/springframework/boot/logging/logback/file-appender.xml" />-->
    <!--<root level="INFO">-->
        <!--<appender-ref ref="CONSOLE" />-->
        <!--<appender-ref ref="FILE" />-->
    <!--</root>-->
<!--</included>-->

 

 10  用注解对Action的参数(也可以对其他地方的参数验证)进行验证

  主要用到@Validated  和

 

@Configuration
public class CommonConfig {
    @Bean
    public MethodValidationPostProcessor methodValidationPostProcessor(){
        return new MethodValidationPostProcessor();
    }
}
package com.example.hehe;


import lombok.extern.slf4j.Slf4j;
import org.hibernate.validator.constraints.Email;
import org.hibernate.validator.constraints.Range;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.http.MediaType;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

import java.util.Date;
import java.util.LinkedList;

@Slf4j
@RestController
@Validated
public class CommonController {



    @RequestMapping("/test")
    public  String  commonAction(
            @RequestParam(name = "date")
            @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
            Date date
    ){
       log.info("helloWorld");
       log.info(date.toString());

       CommonProperties.builder().host("127.0.0.1")
               .port("9090")
               .username("hzz")
               .password("xssdsdcsd")
               .list(new LinkedList<>())
               .build();
        return date.toString();
    }

    @GetMapping("/restful/{grade}/{name}")
    public  String  restAction(

            @Range(min = 0,max = 9,message = "0-9?")
            @PathVariable  int grade,
            @PathVariable  String name)
    {
        log.info("helloWorld");
        log.info("the  grade  is {}  and  name is {}",grade,name);
        return  name;
    }

    @GetMapping("/restEmail")
    public  String  restEmail(
            @Email
            @RequestParam (name = "email") String email,
            @javax.validation.constraints.Pattern(regexp = "[A-Za-z0-9_\\-\\u4e00-\\u9fa5]+",message = "password too simple")
            @RequestParam (name = "password") String password
            )
    {
        log.info("helloWorld");
        log.info("the  email  is {} ",email);
        return  email;
    }

    @PostMapping(value = "/rest2",consumes = MediaType.APPLICATION_JSON_VALUE,produces = MediaType.APPLICATION_JSON_VALUE)
    public String rest2(){

                return "hello  rest2";
    }
}

          常见的MVC注解

  @CookieValue//从cookie拿值

  @RequestHeader//从请求头中拿到值

   @MatrixValue

  @CrossOrange//跨域

 数据库连接池

 

 

  

posted on 2017-07-21 09:20  编世界  阅读(285)  评论(0编辑  收藏  举报