บางครั้งเราจำเป็นต้องเปิดเธรดหรือโปรแกรมบางอย่างเพื่อทำอะไรบางอย่างหลังจากที่สปริงบูตคอนเทนเนอร์เริ่มต้นและโหลด ในเวลานี้เราจำเป็นต้องกำหนดค่าเหตุการณ์ ContextrefreshedEvent เพื่อให้บรรลุสิ่งที่เราต้องการทำ
1. คลาส ApplicationStartup
Public Class ApplicationStartup ใช้ ApplicationListener <contextrefreshedEvent> {โมฆะสาธารณะ onapplicationEvent (เหตุการณ์ contextrefreshedEvent) {// หลังจากโหลดคอนเทนเนอร์ Event.getApplicationContext (). getBean (ossvideorepository.class); // หลังจากโหลดคอนเทนเนอร์ getConfig ในไฟล์กำหนดค่า ServerConfig = (serverConfig) event.getApplicationContext (). getBean (serverConfig.class); ServerFilescanner Filescanner = ใหม่ ServerFilescanner (OssVideOrepository, ServerConfig.getScanPath ()); // เริ่มเธรดหลังจากคอนเทนเนอร์ถูกโหลดเธรดเธรด = เธรดใหม่ (Filescanner); thread.start (); -2. คลาส ServerConfig
@component@configurationProperties (prefix = "เซิร์ฟเวอร์") คลาสสาธารณะคลาส ServerConfig {สตริงส่วนตัว Aliyunossendpoint; สตริงส่วนตัว AliyunossaccessKeyId; สตริงส่วนตัว Aliyunossaccesskeysecret; สตริงส่วนตัว AliyunossbucketName; การสแกนสตริงส่วนตัว; สตริงสาธารณะ getaliyunossendpoint () {return aliyunossendpoint; } โมฆะสาธารณะ setaliyunossendpoint (String Aliyunossendpoint) {this.aliyunossendpoint = Aliyunossendpoint; } สตริงสาธารณะ getaliyunossaccesskeyId () {return aliyunossaccessKeyId; } โมฆะสาธารณะ setaliyunossaccessKeyId (สตริง AliyunossAccessKeyId) {this.aliyunossaccessKeyId = AliyunossaccessKeyId; } สตริงสาธารณะ getaliyunossaccesskeysecret () {return aliyunossaccesskeysecret; } โมฆะสาธารณะ setaliyunossaccesskeysecret (สตริง Aliyunossaccesskeysecret) {this.aliyunossaccesskeysecret = Aliyunossaccesskeysecret; } สตริงสาธารณะ getaliyunossbucketName () {return aliyunossbucketName; } โมฆะสาธารณะ setaliyunossbucketName (สตริง AliyunossBucketName) {this.aliyunossBucketName = AliyunossBucketName; } สตริงสาธารณะ getScanPath () {return scanpath; } โมฆะสาธารณะ setaliyunossbucketName (สตริง AliyunossBucketName) {this.aliyunossBucketName = AliyunossBucketName; } สตริงสาธารณะ getScanPath () {return scanpath; } โมฆะสาธารณะ setScanPath (String scanpath) {this.scanpath = scanpath; -PS: นอกจากนี้ยังมีบางเหตุการณ์ที่สร้างขึ้นในฤดูใบไม้ผลิ
1. ContextrefreshedEvent: เหตุการณ์นี้จะถูกทริกเกอร์เมื่อคอนเทนเนอร์ ApplicationContext เริ่มต้นหรือรีเฟรช
2. ContextStartEdEvent: เหตุการณ์นี้จะถูกทริกเกอร์เมื่อ ApplicationContext คอนเทนเนอร์เริ่มต้นใช้วิธีการเริ่มต้น () ของอินเตอร์เฟส configurableapplicationContext
3. contextclosedEvent: เหตุการณ์นี้จะถูกทริกเกอร์เมื่อคอนเทนเนอร์ ApplicationContext ถูกปิดโดยใช้วิธีปิด () ของอินเตอร์เฟส configurableapplicationContext
4. ContextStopedEvent: เหตุการณ์นี้ถูกทริกเกอร์เมื่อวิธีการหยุด () ของอินเตอร์เฟส configurableapplicationContext ใช้เพื่อหยุดคอนเทนเนอร์ ApplicationContext
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น