[spring-boot] 热部署/时间格式化/模拟请求/连接MySQL/日志记录

环境:

Spring-boot:2.1.2
IDEA 2018.3
MAVEN 3.6.0

1.热部署(hot swapping)

加入依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <optional>true</optional>
</dependency>

一些设置:

 

2.对Date类型进行时间格式化,变成东八区时间:

@JsonFormat(timezone="GMT+8", pattern="yyyy-MM-dd")
private Date originRelease;

3.模拟http请求

建议用postman,因为curl的命令在windows下,在post请求,--data后面,本来的单引号要改成两个双引号,双引号要改成三个双引号,不然会报JSON Parse Error

curl -v localhost:8080/tvseries -H "Content-Type:application/json" -X POST --data ""{"""id""":1
000,"""originRelease""":"""2019-08-08"""}""

 建议用postman软件代替在命令行中输入curl命令,可以避免上述问题:

 4.以MySQL为例连接数据库

//首先添加依赖:
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>1.3.2</version>
</dependency>

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.13</version>
</dependency>

//然后再application.yml中添加数据库相关配置:
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/mydb?useUnicode=true&characterEncoding=UTF-8
      &rewriteBatchedStatements=true&chara
    username: root
    password: 1234

@Repository
public interface TvSeriesDao
{
    @Select("select * from tvseries")
    List<TvSeries> getAll();
}

@Service
@Transactional
public class TvSeriesService
{
    @Autowired private TvSeriesDao tvSeriesDao;

    public List<TvSeries> getAllTvSeries() {
        return tvSeriesDao.getAll();
    }
}

//@MapperScan扫描dao所在类
@SpringBootApplication
@MapperScan("com.abc.bootdemo.dao")
public class Demo4Application
{
    public static void main(String[] args)
    {
        SpringApplication.run(Demo4Application.class, args);
    }
}

  

5.日志记录

application.yml:

logging:
  file: target/app.log
  level:
    ROOT: warn
    com.abc: trace

 在方法中使用log:

@RestController
@RequestMapping("/tvseries")
public class TvSeriesController
{
    private static final Log log = LogFactory.getLog(TvSeriesController.class);

    @Autowired
    TvSeriesService tvSeriesService;

    @GetMapping
    public List<TvSeries> getAll() {
        if(log.isTraceEnabled()) {
            log.trace("getAll():被调用了");
        }

        return tvSeriesService.getAllTvSeries();
    }
}

console会输出:

2019-02-06 00:03:16.067 TRACE 668868 --- [nio-8080-exec-6] c.a.b.controller.TvSeriesController      : getAll():被调用了

  

posted @ 2019-02-05 17:01  wanyi1996  阅读(224)  评论(0编辑  收藏  举报