Mục đích của bài bác này là khám phá về instance vào java. lấy một ví dụ cụ thể cách để áp dụng interface Instance trong java thế nào.
Bạn đang xem: Instance trong java là gì
1. Cú pháp của instance vào java
Để sử dụng instance vào java buộc phải import package: javax.enterprise.inject.
Cú pháp của instance vào java như sau:
public interface Instance extends Iterable, Provider Tsi mê khảo thêm ngơi nghỉ các trang web sau:
2. Tạo project Quarkus
Tạo project Quarkus bằng cách sử dụng lệnh sau:
mvn io.quarkus:quarkus-maven-plugin:1.12.2.Final:create -DprojectGroupId=tekkenbasara.mobi -DprojectArtifactId=Instance-javaThêm dependency quarkus-resteasy-jackson vào tệp tin pom.xml. Mục đích đến viết API kế tiếp. io.quarkus quarkus-resteasy-jackson
3. Viết code
Lấy ví dụ để áp dụng instance vào java nhỏng sau:Giả sử phải build một object bự có tương đối nhiều trực thuộc tính để gửi sang một remote service. Object lớn bao gồm dạng như sau:"data1": "item1": "tòa tháp 1", "item12": "vật phẩm 12" , "data2": "item2": "tác phẩm 2" , "data3": "item3": "Item 3", "item31": "Item 31" Mỗi nằm trong tính sẽ có được một service chịu đựng trách nhiệm build dữ liệuHiện thực ví dụ bên trên bằng code java nhỏng sau:
Đầu tiên, tạo thành lớp Data1 gồm 2 attribute đó là item1, item12 nlỗi sau:
package tekkenbasara.mobi.model;public class Data1 private String item1; private String item12; public String getItem1() return item1; public void setItem1(String item1) this.item1 = item1; public String getItem12() return item12; public void setItem12(String item12) this.item12 = item12;
Override public String toString() return "Data1" + "item1="" + item1 + """ + ", item12="" + item12 + """ + ""; Thêm lớp Data2 có một nằm trong tính đó là itemét vuông nlỗi sau:
package tekkenbasara.mobi.model;public class Data2 private String item2; public String getItem2() return item2; public void setItem2(String item2) this.itemét vuông = item2;
Override public String toString() return "Data2" + "item2="" + itemét vuông + """ + ""; Tạo lớp Data3 gồm 2 trực thuộc tính sẽ là item3, item31 nhỏng sau:
package tekkenbasara.mobi.model;public class Data3 private String item3; private String item31; public String getItem3() return item3; public void setItem3(String item3) this.item3 = item3; public String getItem31() return item31; public void setItem31(String item31) this.item31 = item31;
Override public String toString() return "Data3" + "item3="" + item3 + """ + ", item31="" + item31 + """ + ""; Thêm lớp Data tất cả 3 trực thuộc tính chính là data1, data2, data3 nhỏng sau:
package tekkenbasara.mobi.model;public class Data private Data1 data1; private Data2 data2; private Data3 data3; public Data1 getData1() return data1; public void setData1(Data1 data1) this.data1 = data1; public Data2 getData2() return data2; public void setData2(Data2 data2) this.data2 = data2; public Data3 getData3() return data3; public void setData3(Data3 data3) this.data3 = data3;
Override public String toString() return "Data" + "data1=" + data1 + ", data2=" + data2 + ", data3=" + data3 + ""; Tạo một interface IService, tất cả một cách làm addData, tmê mệt số truyền vào có vẻ bên ngoài là lớp Data.
package tekkenbasara.mobi.service;import tekkenbasara.mobi.model.Data;public interface IService void addData(Data data);Lần lượt tạo nên 3 service nhằm implement IService như sau:
Service1 dùng để làm thêm dữ liệu cho nằm trong tính datamột trong các lớp Data.
package tekkenbasara.mobi.service;import tekkenbasara.mobi.mã sản phẩm.Data;import tekkenbasara.mobi.model.Data1;import javax.enterprise.context.ApplicationScoped;
ApplicationScopedpublic class Service1 implements IService
Override public void addData(Data data) Data1 data1 = new Data1(); data1.setItem1("nhà cửa 1"); data1.setItem12("thành tích 12"); data.setData1(data1); Service2 dùng để làm thêm tài liệu mang lại ở trong tính data2 vào lớp Data
package tekkenbasara.mobi.service;import tekkenbasara.mobi.mã sản phẩm.Data;import tekkenbasara.mobi.Model.Data2;import javax.enterprise.context.ApplicationScoped;
Xem thêm: Thông Cáo Báo Chí Tiếng Anh Là Gì, Đặc Điểm, Nội Dung Và Cấu Trúc
ApplicationScopedpublic class Service2 implements IServiceOverride public void addData(Data data) Data2 data2 = new Data2(); data2.setItem2("tác phẩm 2"); data.setData2(data2); ‘
Service3 dùng làm thêm dữ liệu mang đến thuộc tính data3 trong lớp Data
package tekkenbasara.mobi.service;import tekkenbasara.mobi.mã sản phẩm.Data;import tekkenbasara.mobi.mã sản phẩm.Data3;import javax.enterprise.context.ApplicationScoped;
ApplicationScopedpublic class Service3 implements IService
Override public void addData(Data data) Data3 data3 = new Data3(); data3.setItem3("Item 3"); data3.setItem31("Item 31"); data.setData3(data3); Tạo lớp TestService để thực hiện Instance trong java nlỗi sau:
package tekkenbasara.mobi.service;import tekkenbasara.mobi.model.Data;import javax.enterprise.context.ApplicationScoped;import javax.enterprise.inject.Instance;import javax.inject.Inject;
ApplicationScopedpublic class TestService
Inject Instance services; public Data addData() Data data = new Data(); for (IService service : services) service.addData(data); return data; Phân tích code vào chương trình trên:
Tạo lớp TestController nhằm soát sổ lại lớp Data sẽ đạt thêm toàn bộ dữ liệu cho những ở trong tính data1, data2, data3 nlỗi sau:
package tekkenbasara.mobi.controller;import tekkenbasara.mobi.service.TestService;import tekkenbasara.mobi.model.Data;import javax.inject.Inject;import javax.ws.rs.GET;import javax.ws.rs.Path;
Path("/test")public class TestController
Inject TestService testService;
GET public Data getData() return testService.addData(); Chạy công tác quarkus bởi lệnh sau:
mvnw clean quarkus:devKết quả sau khoản thời gian chạy API (/test) nlỗi sau:

4. Source code (Instance java)
Để coi cụ thể source code trong bài viết này bằng phương pháp download source code sinh hoạt liên kết sau: