ในการพัฒนาโครงการ Maven ฉันควรทำอย่างไรเมื่อฉันต้องการอ่านไฟล์การกำหนดค่าภายใต้ SRC/?
สมมติว่ามีไฟล์การกำหนดค่าภายใต้ทรัพยากรที่มีชื่อไฟล์ kafka.properties (ทำไมใช้ kafka.properties เพราะนี่เป็นปัญหาที่พบเมื่อทำโครงการ kafka ฉันพบข้อมูลจำนวนมากออนไลน์ดังนั้นฉันจึงกลายเป็นพนักงานยกกระเป๋า
1. อ่านในคลาส Java
หากไฟล์การกำหนดค่าไม่ได้อยู่ในไดเรกทอรี SRC/Main/Resources คุณสามารถใช้งานได้โดยตรง
คุณสมบัติ prop = คุณสมบัติใหม่ (); prop.load (new InputStream ("kafka.properties"));เมื่อไฟล์การกำหนดค่าถูกวางไว้ในไดเรกทอรีของ SRC/Main/Resources คุณสามารถใช้เมธอด Class.GetResourceasStream () เท่านั้น
คุณสมบัติ prop = คุณสมบัติใหม่ (); prop.load (this.getClass (). getResourceasstream ("/kafka.properties")); ในเวลานี้เส้นทางพารามิเตอร์จะถูกเขียนในเมธอด GetResourceAsStream (ชื่อสตริง):
1). หากเขียนเป็น "kafka.properties" มันคือการค้นหาในไดเรกทอรีเดียวกับไฟล์คลาสของคลาสปัจจุบัน (แต่เห็นได้ชัดว่าไม่มีใครจะใส่ไฟล์การกำหนดค่าในตำแหน่งนี้ในโครงการปกติ)
2). หากเขียนเป็น "/kafka.properties" ไปที่ไดเรกทอรีคลาสของโครงการทั้งหมดและมองหามันนั่นคือเป้าหมาย/คลาส
2. อ่านในไฟล์ XML ของ Framework Spring
ก่อนอื่นมาเขียนไฟล์กำหนดค่า kafka.properties
kafka.topic = หัวข้อ serializer.class = kafka.serializer.stringencoder key.serializer.class = kafka.serializer.stringencoder
มีสองวิธีในการโทร
1). แรกคุณสามารถกำหนดค่าได้ในถั่วฤดูใบไม้ผลิ
<bean id = "PropertyConfigurer"> <property name = "locations"> <list> <span style = "white-space: pre"> </span> <value>/kafka.properties </alue>
ที่นี่คุณสามารถกำหนดค่าหลายค่าในแท็กรายการเพื่อให้สามารถอ่านไฟล์การกำหนดค่าหนึ่งไฟล์หรือหลายไฟล์ในถั่ว
<bean id = "kafkaservice"> <!-<property name = "topic"> <value> หัวข้อ </value> </porement>-> <property name = "topic"> <value> $ {kafka.topic} ด้วยวิธีนี้พารามิเตอร์ในไฟล์การกำหนดค่าสามารถเรียกได้สำเร็จในถั่วที่ตามมา ส่วนแสดงความคิดเห็นด้านบนของทรัพย์สินและบรรทัดความคิดเห็นมีผลเหมือนกัน
2). หรือคุณสามารถใช้วิธีการต่อไปนี้
<บริบท: สถานที่ตั้งสถานที่ตั้งสถานที่ = "classpath: kafka.properties"/>>>
กำหนดค่าบริบท: Property-Placeholder โดยตรงในไฟล์การกำหนดค่าฤดูใบไม้ผลิ มีไฟล์การกำหนดค่าหลายไฟล์ที่สามารถคั่นด้วยเครื่องหมายจุลภาคเช่น
<บริบท: สถานที่ตั้งสถานที่ตั้งสถานที่ = "classpath: kafka.properties, classpath: jdbc.properties"/> >>
วิธีที่เรียกว่าเหมือนกับใน 1) ดังนั้นฉันจะไม่ทำซ้ำที่นี่
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น