分为两部分,首先替换默认数据源为阿里德鲁伊并添加监控,其次是SpringBoot下使用Mybatis
替换数据源为德鲁伊
首先在配置文件里配置好数据库连接的基本信息,如username password url等,重要的是把默认的type换成Druid。这样做数据源已经换成druid了,但是如果想完成对druid的定制化设置如设置initialSize,仅仅在yml里配置是不可以的,需要再实现一个配置类,并在这个配置类里实现后台监控的配置。
spring: datasource: username: root password: password url: jdbc:mysql://localhost:3306/javaweb driver-class-name: com.mysql.jdbc.Driver # initialization-mode: always type: com.alibaba.druid.pool.DruidDataSource initialSize: 5
- 标注@Configuration表示这是一个注解,使用@Bean向容器里添加Bean,Bean的类型是DataSource
- 添加@ConfigurationProperties(prefix="spring.dataSource"),这样在yml里关于druid的配置才能生效
- 以向容器中添加Servlet和Filter的形式为druid添加后台监控,并添加相应的配置
@Configuration public class DruidConfig { @ConfigurationProperties(prefix = "spring.datasource") @Bean public DataSource druid(){ return new DruidDataSource(); } //配置druid监控 @Bean public ServletRegistrationBean statViewServlet(){ ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*"); HashMap<String, String> map = new HashMap<>(); map.put("loginUsername","admin"); map.put("loginPassword","123456"); bean.setInitParameters(map); return bean; } @Bean public FilterRegistrationBean webStatFilter(){ FilterRegistrationBean<Filter> bean = new FilterRegistrationBean<>(); bean.setFilter(new WebStatFilter()); HashMap<String, String> map = new HashMap<>(); map.put("exclusions","*.js"); bean.setInitParameters(map); bean.setUrlPatterns(Arrays.asList("/*")); return bean; } }
整合Mybatis
编写接口和接口实现类xml文件和普通使用Mybatis没有区别,关键在于让SpringBoot接口的实现类的位置,和Mybatis配置文件的位置。需要在yml里告诉SpringBoot具体的位置,其中config-location对应配置文件的位置,mapper-locations对应接口实现类的位置。为了使项目整洁,两个配置文件我都放在了resources/mybatis下。
config-location: classpath:mybatis/mybatis-config.xml mapper-locations: classpath:mybatis/mapper/*.xml