Micro-Framework Spring-Boot ได้รับความนิยมอย่างมากเมื่อเร็ว ๆ นี้ ผู้เขียนได้ติดตามแนวโน้มและไม่พูดอะไรอีก ตอนนี้ฉันจะยกตัวอย่างการอ่านไฟล์กำหนดค่า
ก่อนอื่นคุณต้องพึ่งพาแพ็คเกจ JAR ต่อไปนี้ในไฟล์ POM
<การพึ่งพา> <การพึ่งพา> <roupId> org.springframework.boot </groupid> <ratifactid> Spring-Boot-Starter-Web </Artifactid> </dercture> <การพึ่งพาอาศัย> <loupid> org.springframework.boot </groupid> </predency> </dependencies>
ประการที่สองเราต้องการคลาสเริ่มต้นฤดูใบไม้ผลิ
@springbootapplication @enableconfigurationProperties ({propsconfig.class, ymlconfig.class}) การอ่านระดับสาธารณะ {โมฆะคงที่สาธารณะหลัก (สตริง [] args) {springapplication.run (readapplication.class, args); -ถูกต้องแล้ว propsconfig.class และ ymlconfig.class ชี้ให้เห็นในคำอธิบายประกอบ @enableConfigurationProperties เป็นคลาสที่อ่านอุปกรณ์ประกอบฉากและไฟล์การกำหนดค่า YML ตามลำดับ ต่อไปเราจะใช้การใช้งานคุณสมบัติการอ่านเฉพาะและไฟล์การกำหนดค่า YML ตามลำดับ
1. อ่านไฟล์กำหนดค่าคุณสมบัติ
วางไฟล์ application.properties ภายใต้ classpath ด้วยเนื้อหาทั่วไปดังนี้:
master.ds.driverclassname = com.mysql.jdbc.driver master.ds.url = jdbc: mysql: // localhost: 3306/ทดสอบ master.ds.username = root master.ds.password = root master.ds.filters = stat Master.ds.maxactive master.ds.minidle = 10 master.ds.timebetweenevictionrunsmillis = 60000 master.ds.minevictableidletiTimeMillis = 3000000 master.ds.validationQuery = select 'x' master.d.testharhle ในขณะเดียวกัน master.ds.maxopenpreparedstatements = 100 master.ds.removeabandoned = True Master.ds.removeAbandOnedTimeOut = 1800 Master.ds.logabandoned = True
การอ่านคลาสการกำหนดค่าอุปกรณ์ประกอบฉากนั้นง่ายมาก มันเป็นคลาส POJO/VO และเพียงแค่โหลดคำอธิบายประกอบ @ConfigurationProperties ในชั้นเรียน
@ConfigurationProperties (prefix = "master.ds", location = "classpath: application.properties") คลาสสาธารณะ propsconfig {สตริงส่วนตัว driverclassname; URL สตริงส่วนตัว ชื่อผู้ใช้สตริงส่วนตัว; รหัสผ่านสตริงส่วนตัว ตัวกรองสตริงส่วนตัว สตริงส่วนตัว ค่าเริ่มต้นสตริงส่วนตัว สตริงส่วนตัว Maxwait; Public String getDriverClassName () {return driverclassName; } โมฆะสาธารณะ setDriverClassName (String driverclassName) {this.driverClassName = DriverClassName; } สตริงสาธารณะ getUrl () {return url; } โมฆะสาธารณะ setUrl (rl String) {this.url = url; } สตริงสาธารณะ getUserName () {ส่งคืนชื่อผู้ใช้; } โมฆะสาธารณะ setUserName (ชื่อผู้ใช้สตริง) {this.userName = ชื่อผู้ใช้; } สตริงสาธารณะ getPassword () {ส่งคืนรหัสผ่าน; } public void setPassword (สตริง) รหัสผ่าน) {this.password = รหัสผ่าน; } สตริงสาธารณะ getFilters () {ตัวกรองส่งคืน; } โมฆะสาธารณะ setFilters (ตัวกรองสตริง) {this.filters = ตัวกรอง; } สตริงสาธารณะ getMaxactive () {return maxactive; } โมฆะสาธารณะ setMaxactive (string maxactive) {this.maxactive = maxactive; } Public String getInitialSize () {return iminiSize; } โมฆะสาธารณะ setInitialSize (สตริงค่าเริ่มต้น) {this.initialSize = ค่าเริ่มต้น; } สตริงสาธารณะ getMaxWait () {return maxWait; } โมฆะสาธารณะ setMaxWait (สตริง maxWait) {this.maxwait = maxWait; - คลาสทดสอบหน่วย
@runwith (springjunit4classrunner.class) @springboottest (classes = readapplication.class) คลาสสาธารณะ readapplicationpropstests {@autowired ส่วนตัว propsconfig propsconfig; @Test โมฆะสาธารณะ testDisplayPropSValue () {สตริง driverclassName = propSconfig.getDriverClassName (); string url = propsconfig.geturl (); string username = propsconfig.getUserName (); สตริงรหัสผ่าน = propSconFig.getPassword (); ตัวกรองสตริง = propsconfig.getFilters (); String maxactive = propsconfig.getMaxactive (); สตริงค่าเริ่มต้น = propSconfig.getInitialSize (); String maxwait = propsconfig.getMaxWait (); System.out.println ("driverclassname ->" + driverclassname); System.out.println ("url ->" + url); System.out.println ("ชื่อผู้ใช้ ->" + ชื่อผู้ใช้); System.out.println ("รหัสผ่าน ->" + รหัสผ่าน); System.out.println ("ค่าเริ่มต้น ->" + ค่าเริ่มต้น); System.out.println ("maxwait ->" + maxwait); -คุณสามารถดูเอาต์พุตเนื้อหาทดสอบในคอนโซล:
driverclassName -> com.mysql.jdbc.driver url -> jdbc: mysql: // localhost: 3306/ทดสอบชื่อผู้ใช้ -> รหัสผ่านรูท -> รูทชาร์จไฟ -> 1 maxwait -> 60000
2. อ่านไฟล์กำหนดค่า YML
วางไฟล์ application.yml ภายใต้ classpath ด้วยเนื้อหาทั่วไปดังนี้:
MyProps: #CUSTOM คุณสมบัติและค่า SimpleProp: SimplePropValue ArrayProps: 1,2,3,4,5 ListProp1: - ชื่อ: ABC Value: ABCVALUE - ชื่อ: EFG ค่า: EFGVALUE LISTPROP2: - COFFINF2VALUE1
อ่านคลาสของไฟล์การกำหนดค่า YML
@ConfigurationProperties (คำนำหน้า = "myProps") // คุณสมบัติภายใต้ myProps ใน application.yml คลาสสาธารณะ ymlConfig {สตริงส่วนตัว simpleprop; สตริงส่วนตัว [] ArrayProps; รายการส่วนตัว <แผนที่ <สตริงสตริง >> listprop1 = arraylist ใหม่ <> (); // รับค่าแอตทริบิวต์ในรายการส่วนตัว PROP1 <String> ListProp2 = arrayList ใหม่ <> (); // รับค่าแอตทริบิวต์ในแผนที่ส่วนตัว PROP2 <String, String> Mapprops = ใหม่ HashMap <> (); // รับค่าแอตทริบิวต์ใน prop1 สาธารณะสตริง GetSimpleProp () {return simpleProp; } โมฆะสาธารณะ setSimpleProp (String SimpleProp) {this.simpleProp = SimpleProp; } รายการสาธารณะ <แผนที่ <สตริงสตริง >> getListProp1 () {return listprop1; } รายการสาธารณะ <String> getListProp2 () {return listProp2; } สตริงสาธารณะ [] getArrayProps () {return arrayprops; } โมฆะสาธารณะ setArrayProps (String [] arrayProps) {this.arrayProps = arrayProps; } แผนที่สาธารณะ <สตริงสตริง> getMapprops () {return mapprops; } โมฆะสาธารณะ setMapprops (แผนที่ <สตริง, สตริง> mapprops) {this.mapprops = mapprops; - คลาสทดสอบหน่วย
@runwith (springjunit4classrunner.class) @springboottest (classes = readapplication.class) คลาสสาธารณะ readapplicationymltests {@autowired ส่วนตัว ymlconfig ymlconfig; @Test โมฆะสาธารณะ testDisplayymlValue () พ่น jsonprocessingException {system.out.println ("SimpleProp:" + ymlConfig.getSimpleProp ()); ObjectMapper ObjectMapper = New ObjectMapper (); System.out.println ("ArrayProps:" + ObjectMapper.WriteValueEasString (ymlConfig.getArrayProps ())); System.out.println ("ListProp1:" + ObjectMapper.WriteValueEasString (ymlConfig.getListProp1 ())); System.out.println ("ListProp2:" + ObjectMapper.WriteValueEasString (ymlConfig.getListProp2 ())); System.out.println ("Mapprops:" + ObjectMapper.writevalueasstring (ymlConfig.getMapprops ())); - คุณสามารถดูเอาต์พุตเนื้อหาทดสอบในคอนโซล:
SimpleProp: SimplePropValue ArrayProps: ["1", "2", "3", "4", "5"] ListProp1: [{"ชื่อ": "ABC", "value": "abcvalue"}, {"ชื่อ": "EFG" ["config2Value1", "config2Vavlue2"] mapprops: {"key1": "value1", "key2": "value2"} มันไม่น่าทึ่งเหรอ? มันสามารถทำงานได้อย่างราบรื่นโดยไม่ต้องใช้ไฟล์ ApplicationContext.xml ของ Spring
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น