Druid เป็นการใช้งานพูลเชื่อมต่อฐานข้อมูลบนแพลตฟอร์มโอเพ่นซอร์สของอาลีบาบา มันรวมข้อดีของพูล DB เช่น C3P0, DBCP, Proxool และยังเพิ่มการตรวจสอบบันทึกซึ่งสามารถตรวจสอบการเชื่อมต่อของพูล DB และการดำเนินการ SQL ได้ดี อาจกล่าวได้ว่าเป็นพูลเชื่อมต่อฐานข้อมูลที่สร้างขึ้นสำหรับการตรวจสอบ (มีการกล่าวกันว่าเป็นกลุ่มการเชื่อมต่อที่ดีที่สุดในปัจจุบัน)
1. การพึ่งพาอาศัยกัน
สำหรับการทดสอบใช้ JDBCTEMPLATE
<!-JDBCTEMPLATE-> <การพึ่งพา> <RoupID> org.springframework.boot </groupId> <ratifactid> Spring-Boot-Starter-Jdbc </artifactid> <Sersion> 1.0.26 </Serve> </การพึ่งพา> <!-ตัวเชื่อมต่อ MySQL-> <การพึ่งพา> <roupId> MySQL </groupId> <ArtIfactId> MySQL-Connector-Java </artifactId> <pope>
2. การกำหนดค่า Druid
druid.properties#การตั้งค่าฐานข้อมูล Spring.datasource.DriverClassName = com.mysql.jdbc.driverspring.datasource.url = jdbc: mysql: // localhost: 3306/uu_core? oreconnect = true & usessl = truespring.datasource.username = rootspring.datasource.password = root#-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- - เริ่มต้นขนาดต่ำสุด, สปริงสูงสุด datasource.initialSize = 5Spring.datasource.minidle = 1Spring.datasource.maxactive = 50# กำหนดค่าเวลาเพื่อให้การเชื่อมต่อหมดเวลา Spring.datasource.timebetweenevictionrunsmillis = 60000# กำหนดเวลาขั้นต่ำเพื่อความอยู่รอดในสระว่ายน้ำในมิลลิวินาที Spring.datasource.minevictableidletimeMillis = 300000spring.datasource.validationquery = Select 1 จาก 1 จาก dualspring.datasource.testhialidle = truespring.datasource.testonborrow = falspring.datasource.testonreturn = false# เปิด pscache และระบุขนาดของ pscache ในแต่ละการเชื่อมต่อ spring.datasource.poolpraredStatements ตัวกรองสำหรับการตรวจสอบสถิติที่สกัดกั้น หลังจากลบออกแล้วอินเตอร์เฟสการตรวจสอบ SQL ไม่สามารถนับได้ 'Wall' ใช้สำหรับ Firewall Spring.datasource.Filters = Stat, Wall, Log4j# Open MergesQl ฟังก์ชั่นผ่านคุณสมบัติ ConnectProperties; slow SQL Records Spring.datasource.connectionProperties = druid.stat.mergesql = true; druid.stat.slowsqlmillis = 5000# ข้อมูลการตรวจสอบผสานของหลาย druiddatasource# spring.datasource.useglobaldatasourcestatatat
3. อินสแตนซ์ DataSource
แพ็คเกจ cn.aduu.config; นำเข้า com.alibaba.druid.pool.druiddatasource; นำเข้า com.alibaba.druid.support.http.statviewservlet; นำเข้า com.alibaba.druid.support.http.webstatfilter; org.springframework.boot.context.properties.configurationProperties; นำเข้า org.springframework.boot.web.servlet.filterregistrationbean; นำเข้า org.springframework.boot.web.servlet.servlet org.springframework.context.annotation.configuration; นำเข้า org.springframework.context.annotation.propertysource; นำเข้า javax.sql.datasource;/** * @author zh * @classname "classpath: druid.properties") คลาสสาธารณะ druidConfiguration {@bean (destroyMethod = "Close", initMethod = "init") @ConfigurationProperties (คำนำหน้า = "Spring.Datasource" กลับ Druiddatasource; } /** * ลงทะเบียน statViewServlet * @return * /@Bean สาธารณะ servletRegistrationBean druidstatViewServlet () {//org.springframework.boot.context.embedded.servletRegistrationBean ให้ชั้นเรียนสำหรับการลงทะเบียน ServletRegistrationBean ServletRegistrationBean = ใหม่ servletRegistrationBean (ใหม่ statViewServlet (), "/druid/*"); // เพิ่มพารามิเตอร์การเริ่มต้น: initparams // whitelist: servletregistrationbean.addinitparameter ("อนุญาต", "127.0.0.1"); // ip Blacklist (เมื่อมีคนธรรมดาสามัญปฏิเสธที่จะมีความสำคัญกว่าอนุญาต): หากปฏิเสธได้รับความพึงพอใจพร้อมท์: ขออภัยคุณไม่ได้รับอนุญาตให้ดูหน้านี้ ServletRegistrationBean.addinitParameter ("Deny", "192.168.1.73"); // เข้าสู่ระบบรหัสผ่านบัญชีสำหรับการดูข้อมูล ServletRegistrationBean.addinitParameter ("loginusername", "admin"); ServletRegistrationBean.addinitParameter ("LoginPassword", "123456"); // เป็นไปได้ไหมที่จะรีเซ็ตข้อมูล? servletregistrationbean.addinitparameter ("รีเซ็ตได้", "เท็จ"); ส่งคืน ServletRegistrationBean; } / ** * ลงทะเบียนหนึ่ง: FilterRegistrationBean * @return * / @Bean Public FilterRegistrationBean DruidStatFilter () {FilterRegistrationBean FilterRegistrationBean = ใหม่ FilterRegistrationBean (ใหม่ WebStatFilter ()); // เพิ่มกฎตัวกรอง FilterRegistrationBean.addurlpatterns ("/*"); // เพิ่มข้อมูลรูปแบบที่ไม่จำเป็นต้องละเว้น FilterRegistrationBean.addinitParameter ("การยกเว้น", "*. js,*. gif,*. jpg,*. png,*. css,*. ico,/druid/*"); Return FilterRegistrationBean; -4. การตรวจสอบ
เยี่ยมชม http: // localhost: 8080/druid และใช้รหัสผ่านบัญชีที่กำหนดค่าไว้ด้านบน
V. ทดสอบ
@RestControllerPublic คลาส HelloController {ส่วนตัว Logger สุดท้าย Logger = loggerFactory.getLogger (hellocontroller.class); @autowired ส่วนตัว JDBCTEMPLAT JDBCTEMPLATE; @RequestMapping ("hello") รายการสาธารณะ <แผนที่ <String, Object >> Hello () {list <map <string, object >> list = jdbctemplate.QueryForList ("เลือกผู้ใช้, รหัสผ่านจาก mysql.user", วัตถุใหม่ [] {}); รายการคืน; -เยี่ยมชม LocalHost: 8080/สวัสดี
[{"ผู้ใช้": "รูท", "รหัสผ่าน": "*81f5e21e35407d884a6cd4a731aebfb6af2af209e1b"}, {"ผู้ใช้": "รูท", "รหัสผ่าน": สรุป
ด้านบนเป็นแหล่งข้อมูล Springboot ที่แนะนำโดยตัวแก้ไขให้คุณ ฉันหวังว่ามันจะเป็นประโยชน์กับคุณ หากคุณมีคำถามใด ๆ โปรดฝากข้อความถึงฉันและบรรณาธิการจะตอบกลับคุณทันเวลา ขอบคุณมากสำหรับการสนับสนุนเว็บไซต์ Wulin.com!