Contents
  1. 1. 定时任务Crontab
  2. 2. Mybatis 集成
  3. 3. Mybatis SqlSessionTemplate的集成
  4. 4. 集成mysql
  5. 5. 集成MVC和JSP
  6. 6. 生成war包,外部运行
  7. 7. 日志功能
    1. 7.1. logback 打印mybatis SQL功能
  8. 8. 集成Druid连接池和监控执行信息
  9. 9. 异常处理

定时任务Crontab

  • 只依赖spring-boot-starter.jar
  • 启动类添加@EnableScheduling 注解
  • 直接使用Crontab
    @Component
    public class SchedulerTask {
    @Scheduled(cron="0/5 * * * * ?")
    public void executeFileDownLoadTask() {
    // 间隔5s钟,执行任务
    Thread current = Thread.currentThread();
    System.out.println("定时任务1:"+current.getId());
    }
    }

Mybatis 集成

  1. maven 依赖

    <dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>1.3.2</version>
    </dependency>
  2. mapper扫描路径指定

    # 指定Mapper xml文件的扫描路径,为 resource 文件夹下的 mapper文件夹下的所有xml文件
    mybatis.mapperLocations=classpath:mapper/*.xml

3.指定mybatis接口路径

@SpringBootApplication
@MapperScan("com.example.demo.dao")
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}

Mybatis SqlSessionTemplate的集成

  • Maven依赖
  • 指定mapper文件路径
  • 注入SqlSessionTemplate直接使用
    @Resource
    private SqlSessionTemplate template;
    @Transactional(readOnly = true)
    public User selectByPrimaryKey(long id) {
    System.out.println("show_test");
    User user =template.selectOne("com.example.demo.dao.UserDAO.selectByPrimaryKey",id);
    return user;
    }

集成mysql

  1. maven依赖

    <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
    </dependency>
  2. 配置数据源

    spring.datasource.url=jdbc:mysql://localhost:3306/ksc_order?useUnicode=true&characterEncoding=utf8
    spring.datasource.username=root
    spring.datasource.password=123456
    spring.datasource.driver-class-name=com.mysql.jdbc.Driver

集成MVC和JSP

http://tengj.top/2017/03/13/springboot5/

  1. 引入maven依赖
  2. 配置spring.mvc.view.prefix 和 suffix
  3. 设置module,设置web的路径为 webapp,和引入maven dependence

生成war包,外部运行

http://tengj.top/2017/03/13/springboot5/

  1. 写一个继承SpringBootServletInitializer的类,指定web.xml启动类

    public class DemoApplication extends SpringBootServletInitializer {
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
    return application.sources(DemoApplication.class);
    }
    }
  2. 覆盖掉内置tomcat的作用范围为 provided,不和外部的tomcat发生冲突

    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
    </dependency>
  3. 打包的时候查看包结构,如果少了lib包的话, myeclipse –> Deployment Assmely里面要有mavenjar包依赖 到 lib下

日志功能

http://tengj.top/2017/04/05/springboot7/#

  1. 默认引入了spring-boot-starter的包里已经有logback了,直接用即可。
  2. 直接在src/main/resouce下设置logback-spring.xml文件,自动加载logback配置
  3. logger结点设置解释如下
  • 设置了logger的话,优先走logger,而不是用root;会按照logger设置的级别,只打印高于该级别的信息。
  • addtivity:是否向上级logger传递打印信息。默认是true。可能会打印2次满足条件的日志信息。
    <logger name="com.dudu.controller.LearnController" level="WARN" additivity="false">
    <appender-ref ref="console"/>
    </logger>
    @RequestMapping(value = "/login",method = RequestMethod.POST)
    @ResponseBody
    public Map<String,Object> login(HttpServletRequest request, HttpServletResponse response){
    //日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出。
    logger.trace("日志输出 trace");
    logger.debug("日志输出 debug");
    logger.info("日志输出 info");
    logger.warn("日志输出 warn");
    logger.error("日志输出 error");
    }

logback 打印mybatis SQL功能

因为mybatis SQL的级别是debug,所以暴力一点 root设置为debug,就会打印sql信息。
优雅一点的话,直接设置 mapper层为debug即可,name为 mapper的前缀即可,优雅无比。

<logger name="com.example.demo.dao" level="debug"/>

集成Druid连接池和监控执行信息

http://tengj.top/2017/12/20/springboot11/
在启动类里面添加如下代码(因为就不需要单独写 configeration类了

@Autowired
private Environment env;
//destroy-method="close"的作用是当数据库连接不使用的时候,就把该连接重新放到数据池中,方便下次使用调用.
@Bean(destroyMethod = "close")
public DataSource dataSource() {
DruidDataSource dataSource = new DruidDataSource();
dataSource.setUrl(env.getProperty("spring.datasource.url"));
dataSource.setUsername(env.getProperty("spring.datasource.username"));//用户名
dataSource.setPassword(env.getProperty("spring.datasource.password"));//密码
dataSource.setDriverClassName(env.getProperty("spring.datasource.driver-class-name"));
dataSource.setInitialSize(2);//初始化时建立物理连接的个数
dataSource.setMaxActive(20);//最大连接池数量
dataSource.setMinIdle(0);//最小连接池数量
dataSource.setMaxWait(60000);//获取连接时最大等待时间,单位毫秒。
dataSource.setValidationQuery("SELECT 1");//用来检测连接是否有效的sql
dataSource.setTestOnBorrow(false);//申请连接时执行validationQuery检测连接是否有效
dataSource.setTestWhileIdle(true);//建议配置为true,不影响性能,并且保证安全性。
dataSource.setPoolPreparedStatements(false);//是否缓存preparedStatement,也就是PSCache
return dataSource;
}

异常处理

http://tengj.top/2018/05/16/springboot13/
包括全局性质的 404,500,error.html,还有针对类和全局的 @ExceptionHandler,来针对类型处理异常

Contents
  1. 1. 定时任务Crontab
  2. 2. Mybatis 集成
  3. 3. Mybatis SqlSessionTemplate的集成
  4. 4. 集成mysql
  5. 5. 集成MVC和JSP
  6. 6. 生成war包,外部运行
  7. 7. 日志功能
    1. 7.1. logback 打印mybatis SQL功能
  8. 8. 集成Druid连接池和监控执行信息
  9. 9. 异常处理