1. รายการคำอธิบายประกอบ
@springbootapplication: มี @componentscan, @configuration และ @enableautoconfiguration Annotations โดยที่ @componentscan ให้สแกนสปริงสแกนไปยังคลาสการกำหนดค่าและเพิ่มลงในบริบทของโปรแกรม
@Configuration เทียบเท่ากับไฟล์การกำหนดค่า XML ของ Spring; รหัส Java สามารถตรวจสอบประเภทความปลอดภัย
@enableautoconfiguration การกำหนดค่าอัตโนมัติ
@componentscan ComponentsCan ส่วนประกอบสแกนเพื่อค้นหาและรวบรวมถั่วบางส่วนโดยอัตโนมัติ
@component สามารถใช้กับ Commandlinerunner เพื่อดำเนินงานพื้นฐานบางอย่างหลังจากเริ่มโปรแกรม
@RestController Annotation เป็นคอลเลกชันของ @Controller และ @ResponseBody ซึ่งบ่งชี้ว่านี่เป็นถั่วคอนโทรลเลอร์และค่าการส่งคืนของฟังก์ชั่นจะถูกกรอกลงในร่างกายตอบสนอง HTTP โดยตรง มันเป็นคอนโทรลเลอร์สไตล์พักผ่อน
@autowired นำเข้าโดยอัตโนมัติ
@PathVariable ได้รับพารามิเตอร์
@JSONBackReference แก้ปัญหาลิงค์ภายนอกที่ซ้อนกัน
@RepositoryRestresourcePublic ใช้กับสปริง-สตาร์เทอร์-เรสต์-เรสต์
2. คำอธิบายโดยละเอียดเกี่ยวกับคำอธิบายประกอบ
@springbootapplication: ประกาศสปริงบูตเพื่อกำหนดค่าโปรแกรมโดยอัตโนมัติด้วยการกำหนดค่าที่จำเป็น การกำหนดค่านี้เทียบเท่ากับสามการกำหนดค่า: @configuration, @enableautoconfiguration และ @componentscan
แพ็คเกจ com.example.myproject; นำเข้า org.springframework.boot.springapplication; นำเข้า org.springframework.boot.autoconfigure.springbootapplication; @springbootapplication // เหมือนกับ @configuration @enableautoconfiguration @componentscan แอปพลิเคชั่นสาธารณะ -
@ResponseBody: หมายความว่าผลการส่งคืนของวิธีนี้ถูกเขียนลงในร่างกายตอบสนอง HTTP โดยตรง โดยทั่วไปจะใช้เมื่อข้อมูลได้รับแบบอะซิงโครนัสและใช้ในการสร้าง API ที่สงบ หลังจากใช้ @requestmapping ค่าส่งคืนมักจะแยกวิเคราะห์เป็นเส้นทางกระโดด หลังจากเพิ่ม @ResponseBody ผลการส่งคืนจะไม่ถูกแยกวิเคราะห์เป็นเส้นทางกระโดด แต่จะถูกเขียนลงในตัวตอบกลับ HTTP โดยตรง ตัวอย่างเช่นหากคุณได้รับข้อมูล JSON แบบอะซิงโครนัสและเพิ่ม @ResponseBody ข้อมูล JSON จะถูกส่งกลับโดยตรง คำอธิบายประกอบนี้โดยทั่วไปจะใช้กับ @requestmapping รหัสตัวอย่าง:
@RequestMapping ("/test") @ResponseBody การทดสอบสตริงสาธารณะ () {return "ตกลง"; -@Controller: ใช้เพื่อกำหนดคลาสคอนโทรลเลอร์ ในโครงการฤดูใบไม้ผลิคอนโทรลเลอร์มีหน้าที่รับผิดชอบในการส่งคำขอ URL ที่ส่งโดยผู้ใช้ไปยังอินเตอร์เฟสบริการที่เกี่ยวข้อง (เลเยอร์บริการ) โดยทั่วไปคำอธิบายประกอบนี้อยู่ในชั้นเรียน โดยปกติแล้ววิธีการจะต้องมีการประสานงานกับคำอธิบายประกอบ @requestmapping รหัสตัวอย่าง:
@controller @requestmapping ("/demoinfo") Publicclass Democontroller {@autowired Demoinfoservice Demoinfoservice; @requestmapping ("/hello") สตริงสาธารณะ (แผนที่ <String, Object> แผนที่) map.put ("hello", "จาก templatecontroller.hellohtml"); // เทมเพลต hello.html หรือ hello.ftl จะใช้สำหรับการแสดงผลและการแสดงผล return "/hello";}}@RestController: คอลเลกชันของส่วนประกอบเลเยอร์ควบคุม (เช่นการกระทำใน struts), @ResponseBody และ @Controller รหัสตัวอย่าง:
แพ็คเกจ com.kfit.demo.web; นำเข้า org.springframework.web.bind.annotation.requestmapping; นำเข้า org.springframework.web.bind.annotation.restcontroller; @restcontroller @requestmapping ("/demoinfo2") publicclass democontroller2 {@requestmapping ("/ทดสอบ") การทดสอบสตริงสาธารณะ () {return ";@RequestMapping: ให้ข้อมูลการกำหนดเส้นทางและรับผิดชอบในการแมป URL กับฟังก์ชั่นเฉพาะในคอนโทรลเลอร์
@EnableAutoconFiguration: Spring Boot Auto-Configuration: ลองกำหนดค่าแอปพลิเคชันสปริงของคุณโดยอัตโนมัติตามการพึ่งพา JAR ที่คุณเพิ่ม ตัวอย่างเช่นหาก HSQLDB อยู่ภายใต้ ClassPath ของคุณและคุณยังไม่ได้กำหนดค่าถั่วเชื่อมต่อฐานข้อมูลด้วยตนเองเราจะกำหนดค่าฐานข้อมูลในหน่วยความจำโดยอัตโนมัติ คุณสามารถเพิ่ม @enableautoconfiguration หรือ @springbootapplication คำอธิบายประกอบลงในคลาส @configuration เพื่อเลือกการกำหนดค่าอัตโนมัติ หากคุณพบว่าคลาสการกำหนดค่าอัตโนมัติที่คุณไม่ต้องการถูกนำไปใช้คุณสามารถใช้แอตทริบิวต์การยกเว้นของคำอธิบายประกอบการกำหนดค่า @enableautoconfiguration เพื่อปิดการใช้งาน
@componentscan: หมายความว่าคลาสจะค้นพบส่วนประกอบการสแกนโดยอัตโนมัติ ความเข้าใจส่วนบุคคลเทียบเท่ากับที่ถ้าคุณสแกนคลาสด้วยคำอธิบายประกอบเช่น @component, @Controller, @Service ฯลฯ และลงทะเบียนเป็นถั่วคุณสามารถรวบรวมส่วนประกอบสปริงทั้งหมดได้โดยอัตโนมัติรวมถึงคลาส @Configuration เรามักจะใช้คำอธิบายประกอบ @componentscan เพื่อค้นหาถั่วและนำเข้าร่วมกับคำอธิบายประกอบ @autowired ส่วนประกอบสปริงทั้งหมดสามารถรวบรวมได้โดยอัตโนมัติรวมถึงคลาส @Configuration เรามักจะใช้คำอธิบายประกอบ @componentscan เพื่อค้นหาถั่วและนำเข้าร่วมกับคำอธิบายประกอบ @autowired หากไม่มีการกำหนดค่าสปริงบูตจะสแกนคลาสภายใต้แพ็คเกจที่คลาสเริ่มต้นตั้งอยู่และแพ็คเกจย่อยที่ใช้คำอธิบายประกอบของ @Service, @Repository ฯลฯ
@Configuration: เทียบเท่ากับไฟล์การกำหนดค่า XML แบบดั้งเดิม หากไลบรารีของบุคคลที่สามบางอย่างจำเป็นต้องใช้ไฟล์ XML ขอแนะนำให้ยังคงใช้คลาส @Configuration เป็นคลาสการกำหนดค่าหลักของโครงการ - คุณสามารถใช้คำอธิบายประกอบ @importresource เพื่อโหลดไฟล์การกำหนดค่า XML
@Import: ใช้ในการนำเข้าคลาสการกำหนดค่าอื่น ๆ
@ImportResource: ใช้ในการโหลดไฟล์การกำหนดค่า XML
@autowired: นำเข้าถั่วขึ้นโดยอัตโนมัติ
@Service: ส่วนประกอบที่ใช้โดยทั่วไปในการปรับเปลี่ยนเลเยอร์บริการ
@Repository: การใช้คำอธิบายประกอบ @Repository สามารถมั่นใจได้ว่า DAO หรือที่เก็บมีการแปลข้อยกเว้น คลาส DAO หรือที่เก็บที่แก้ไขโดยคำอธิบายประกอบนี้จะถูกค้นพบและกำหนดค่าโดย ComponetScan และไม่จำเป็นต้องจัดเตรียมรายการการกำหนดค่า XML
@Bean: ใช้วิธีการอธิบายประกอบ @Bean ให้เทียบเท่ากับถั่วที่กำหนดค่าใน XML
@Value: ฉีดค่าของคุณสมบัติที่กำหนดค่าโดย Spring Boot Application.properties รหัสตัวอย่าง:
@Value (value = "#{message}") ข้อความสตริงส่วนตัว;@Inject: เทียบเท่ากับค่าเริ่มต้น @autowired แต่ไม่มีแอตทริบิวต์ที่จำเป็น
@component: หมายถึงส่วนประกอบโดยทั่วไป เมื่อส่วนประกอบไม่ใช่เรื่องง่ายที่จะจำแนกเราสามารถใช้คำอธิบายประกอบนี้เพื่อเพิ่มความคิดเห็น
@Bean: มันเทียบเท่ากับ XML วางอยู่ด้านบนของวิธีการไม่ใช่คลาสซึ่งหมายถึงการสร้างถั่วและส่งมอบให้กับการจัดการฤดูใบไม้ผลิ
@autowired: นำเข้าถั่วขึ้นโดยอัตโนมัติ วิธี Bytype ใช้ถั่วที่กำหนดค่าเพื่อเติมเต็มคุณสมบัติและวิธีการ มันสามารถทำเครื่องหมายตัวแปรสมาชิกคลาสวิธีและตัวสร้างเพื่อให้งานแอสเซมบลีอัตโนมัติเสร็จสมบูรณ์ เมื่อมีการเพิ่ม (จำเป็น = false) จะไม่มีการรายงานข้อผิดพลาดแม้ว่าจะไม่พบถั่วก็ตาม
@qualifier: เมื่อมีถั่วหลายชนิดชนิดเดียวกันคุณสามารถใช้ @qualifier ("ชื่อ") เพื่อระบุ ทำงานร่วมกับ @autowired นอกเหนือจากการฉีดตามชื่อ @Qualifier ผู้คัดเลือกผู้คัดเลือกสามารถใช้เพื่อดำเนินการควบคุมความละเอียดได้ดีขึ้นวิธีการเลือกผู้สมัคร วิธีการใช้งานเฉพาะมีดังนี้:
@autowired @qualifier (value = "demoinfoservice") demoinfoservice ส่วนตัว demoinfoservice;
@Resource (name =” ชื่อ”, type =” type”): หากไม่มีเนื้อหาในวงเล็บค่าเริ่มต้นคือ byname ทำสิ่งที่คล้ายกับ @autowired
3. JPA Notes
@Entity: @Table (name = ""): ระบุว่านี่คือคลาสเอนทิตี โดยทั่วไปใช้สำหรับคำอธิบายประกอบสองคำของ JPA แต่ถ้าชื่อตารางและชื่อคลาสเอนทิตีเหมือนกันสามารถละเว้น @Table ได้
@MappedSuperClass: ใช้เพื่อกำหนดเอนทิตีที่เป็นคลาสแม่ คลาสย่อยของแอตทริบิวต์ของคลาสแม่สามารถสืบทอดได้
@NorePositoryBean: โดยทั่วไปใช้เป็นที่เก็บของคลาสแม่ ด้วยคำอธิบายประกอบนี้สปริงจะไม่สร้างอินสแตนซ์ที่เก็บ
@Column: หากชื่อฟิลด์เหมือนกับชื่อคอลัมน์ก็สามารถละเว้นได้
@ID: หมายความว่าแอตทริบิวต์นี้เป็นคีย์หลัก
@GeneratedValue (strategy = generationType.equence, generator = "reched_seq"): หมายความว่ากลยุทธ์การสร้างคีย์หลักคือลำดับ (สามารถเป็นอัตโนมัติ, ข้อมูลประจำตัว, ดั้งเดิม, ฯลฯ , อัตโนมัติหมายความว่าสามารถสลับระหว่างฐานข้อมูลหลายฐานข้อมูล) และชื่อของลำดับที่ระบุคือ reched_seq
@equenceGeneretor (name = "reched_seq", sequencename = "seq_repair", การจัดสรร = 1): ชื่อคือชื่อของลำดับดังนั้นชื่อลำดับคือชื่อลำดับของฐานข้อมูลและทั้งสองชื่อสามารถสอดคล้องกัน
@Transient: หมายความว่าคุณสมบัตินี้ไม่ใช่แผนที่ไปยังฟิลด์ในตารางฐานข้อมูลและ ORM Framework จะเพิกเฉยต่อคุณสมบัตินี้ หากแอตทริบิวต์ไม่ใช่แผนที่ฟิลด์ของตารางฐานข้อมูลจะต้องทำเครื่องหมายเป็น @transient มิฉะนั้นเฟรมเวิร์ก ORM จะเริ่มต้นเป็นคำอธิบายประกอบเป็น @basic @basic (fetch = fetchType.lazy): แท็กสามารถระบุวิธีการโหลดแอตทริบิวต์เอนทิตี
@JSONIGNORE: ฟังก์ชั่นคือการเพิกเฉยต่อคุณสมบัติบางอย่างในถั่วจาวาเมื่อ jSON ทำให้เป็นอนุกรมและทั้งการทำให้เป็นอนุกรมและ deserialization ได้รับผลกระทบ
@Joincolumn (name =” loginId”): หนึ่งต่อหนึ่ง: คีย์ต่างประเทศในตารางนี้ชี้ไปที่ตารางอื่น หนึ่งถึงหลายคน: อีกตารางชี้ไปที่คีย์ต่างประเทศของตารางนี้
@OnetOone, @Onetomany, @ManytoOne: สอดคล้องกับหนึ่งต่อหนึ่ง, หนึ่งต่อหลายและหลายต่อหนึ่งในไฟล์กำหนดค่าไฮเบอร์เนต
4. หมายเหตุที่เกี่ยวข้องกับ SpringMVC
@requestmapping: @requestmapping ("/path") หมายความว่าคอนโทรลเลอร์จัดการคำขอ URL ทั้งหมดสำหรับ "/path" RequestMapping เป็นคำอธิบายประกอบที่ใช้ในการจัดการการแมปที่อยู่คำขอและสามารถใช้กับคลาสหรือวิธีการ
สำหรับใช้ในชั้นเรียนทุกวิธีที่แสดงถึงคำขอตอบสนองในชั้นเรียนใช้ที่อยู่นี้เป็นพา ธ พาเรนต์ คำอธิบายประกอบนี้มีคุณสมบัติหกประการ:
@RequestParam: ใช้ก่อนพารามิเตอร์ของวิธีการ
@RequestParam String A = request.getParameter ("A") @PathVariable: PathVariable ตัวอย่างเช่น requestmapping ("user/get/mac/{macaddress}") สตริงสาธารณะ getByMacAddress (@PathVariable String MacAddress) {// ทำอะไรบางอย่าง; -พารามิเตอร์จะต้องเหมือนกับชื่อในวงเล็บปีกกา
5. การจัดการข้อยกเว้นทั่วโลก
@ControllerAdvice: มี @component สามารถสแกนได้ การจัดการข้อยกเว้นแบบครบวงจร
@ExceptionHandler (Exception.class): ใช้กับวิธีการเพื่อระบุว่าหากคุณพบข้อยกเว้นนี้คุณจะดำเนินการวิธีการต่อไปนี้
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น