Spring Boot 整合之druid
阿新 • • 發佈:2018-11-16
1.匯入依賴
<!-- springboot,mybatis 整合包 --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.2</version> </dependency> <!-- springboot,druid 整合包 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.10</version> </dependency> <!--web--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--tomcat--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> <!--test--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!--mysql--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.46</version> </dependency>
2.配置application.properties
#資料連線 spring.datasource.druid.driverClassName=com.mysql.jdbc.Driver spring.datasource.druid.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC spring.datasource.druid.username=root spring.datasource.druid.password=root123 spring.datasource.druid.initialSize=5 spring.datasource.druid.minIdle=5 spring.datasource.druid.maxActive=20 spring.datasource.druid.maxWait=60000 spring.datasource.druid.timeBetweenEvictionRunsMillis=60000 spring.datasource.druid.min-evictableIdleTimeMillis=300000 spring.datasource.druid.validationQuery=SELECT 1 FROM DUAL spring.datasource.druid.testWhileIdle=true spring.datasource.druid.testOnBorrow=false spring.datasource.druid.testOnReturn=false spring.datasource.druid.poolPreparedStatements=true spring.datasource.druid.maxPoolPreparedStatementPerConnectionSize=20 spring.datasource.druid.filters=stat,wall # mybatis 配置 mybatis.config-location=classpath:mybatis/mybatis-config.xml mybatis.mapper-locations=classpath:mybatis/mapper/*.xml
3.程式設計
@Configuration public class DruidConfiguration { //引用application.yml中的配置 @ConfigurationProperties(prefix = "spring.datasource.druid") @Bean public DataSource druid(){ return new DruidDataSource(); } /** * 配置Druid的監控 * 1、配置一個管理後臺的Servlet * @return */ @Bean public ServletRegistrationBean statViewServlet(){ ServletRegistrationBean bean=new ServletRegistrationBean(new StatViewServlet(),"/druid/*"); Map<String,String> initParams=new HashMap<>(); //白名單: initParams.put("allow","");//預設就是允許所有訪問 //IP黑名單 (存在共同時,deny優先於allow) : 如果滿足deny的話提示:Sorry, you are not permitted to view this page. initParams.put("deny","192.20.10.5"); //Druid監控後臺登入賬號密碼 initParams.put("loginUsername","admin"); initParams.put("loginPassword","123456"); bean.setInitParameters(initParams); return bean; } /** * 2、配置一個web監控的filter * @return */ @Bean public FilterRegistrationBean webStatFilter() { FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter()); //新增過濾規則. filterRegistrationBean.addUrlPatterns("/*"); //新增不需要忽略的格式資訊. filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid2/*"); return filterRegistrationBean; } }
4.建立實體類
public class User {
private Integer uId;
private String uName;
}
此處省略setter和getter
5.建立介面
public interface UserDao {
int insertUser(User user);
User getUserById(Integer uid);
int updateUser(User user);
int deleteUserById(Integer uid);
}
6.新增配置檔案
6.1 建立mybatis-config.xml (resources\mybatis 資料夾自己創)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<!-- 獲取資料庫自增主鍵值 -->
<setting name="useGeneratedKeys" value="true"/>
<!-- 使用列別名替換列名,預設為 true -->
<setting name="useColumnLabel" value="true"/>
<!-- 開啟駝峰命名轉換:Table(create_time) => Entity(createTime) -->
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
</configuration>
6.2 建立UserMapper.xml (resources\mybatis\mapper 資料夾自己創)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="club.lygangdai.dao.UserDao">
<insert id="insertUser" parameterType="club.lygangdai.pojo.User">
insert into t_user(u_name) values(#{uName})
</insert>
<select id="getUserById" parameterType="java.lang.Integer" resultType="club.lygangdai.pojo.User">
select u_id,u_name from t_user where u_id = #{uId}
</select>
<update id="updateUser" parameterType="club.lygangdai.pojo.User">
update t_user set u_name = #{uName} where u_id = #{uId}
</update>
<delete id="deleteById" parameterType="java.lang.Integer">
delete from t_user where u_id = #{uId}
</delete>
</mapper>
注意:在啟動類添加註解 @MapperScan(dao包路徑)
7.測試
@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringbootDruidApplicationTests {
@Autowired
private UserDao userDao;
@Test
public void contextLoads() {
User user = userDao.getUserById(1);
System.out.println(user);
}
}
結果圖如下:
在瀏覽器輸入:http://127.0.0.1:8080/druid/login.html
進監聽登入
根據配置的賬戶密碼登入