真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Java怎么實現(xiàn)六邊形架構(gòu)

今天小編給大家分享一下Java怎么實現(xiàn)六邊形架構(gòu)的相關(guān)知識點,內(nèi)容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

創(chuàng)新互聯(lián)從2013年創(chuàng)立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目成都做網(wǎng)站、網(wǎng)站建設(shè)網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元淅川做網(wǎng)站,已為上家服務(wù),為淅川各地企業(yè)和個人服務(wù),聯(lián)系電話:18982081108

六邊形架構(gòu)是一種設(shè)計風(fēng)格,通過分層實現(xiàn)核心邏輯與外部對象隔離。其核心邏輯是業(yè)務(wù)模塊,外部元素是整合點,比如數(shù)據(jù)庫、外部 API、界面等。它將軟件分為內(nèi)部與外部,內(nèi)部包含了核心業(yè)務(wù)邏輯與領(lǐng)域?qū)樱ㄋ^分層架構(gòu)),外部包含界面、數(shù)據(jù)庫、消息傳遞及其他內(nèi)容。內(nèi)部與外部通過端口和適配器相互通信。

*譯注:六邊形架構(gòu)(Hexagonal Architecture)由Alistair Cockburn 提出,解決了傳統(tǒng)的分層架構(gòu)所帶來的問題。*

1. 優(yōu)點

使用六邊形架構(gòu)開發(fā)的軟件與通道獨立,因此能支持多通道

易于置換入站和出站整合點

測試軟件變得更簡單,因為可以很容易地模擬集成點

2. Java 實現(xiàn)

按照上面的描述,六邊形架構(gòu)更多地是圍繞端口和適配器開展工作。在 Java 中,用 interface 定義端口,實現(xiàn)類作為適配器。下面用一個簡單的 Spring Boot 應(yīng)用示例了解如何應(yīng)用六邊形架構(gòu)。

示例應(yīng)用主要功能是創(chuàng)建并查看雇員信息,核心業(yè)務(wù)邏輯在EmployeeService中實現(xiàn),領(lǐng)域?qū)ο蠖x為Employee這些都可以看做內(nèi)部模塊。

**EmployeeService.java**

——java

@Service

public class EmployeeService {

@Autowired

private EmployeeRepositoryPort employeeRepository;

public void create(String name, String role, long salary){

employeeRepository.create(name, role, salary);

}

public Employee view(Integer userId){

return employeeRepository.getEmployee(userId);

}

}

——

**Employee.java**

——java

@Entity

@Table(name = "employee")

public class Employee{

@Id

@GeneratedValue

@Column(name = "id")

private Integer id;

@Column(name = "name", nullable = false)

private String name;

@Column(name = "role", nullable = false)

private String role;

@Column(name = "salary", nullable = false)

private long salary;

// Setter、Getter 方法

}

現(xiàn)在,示例應(yīng)用可以通過 REST 或消息機制提供服務(wù)。創(chuàng)建實現(xiàn)了EmployeeUIPort接口的EmployeeControllerAdapter類提供 REST 服務(wù)。

**EmployeeControllerAdapter.java**

——java

RestController

@RequestMapping("/employees/")

public class EmployeeControllerAdapter implements EmployeeUIPort{

@Autowired

private EmployeeService employeeService;

@Override

public void create(@RequestBody Employee request) {

employeeService.create(request.getName(), request.getRole(), request.getSalary());

}

@Override

public Employee view(@PathVariable Integer id) {

Employee employee = employeeService.view(id);

return employee;

}

}

——

——java

public interface EmployeeUIPort {

@PostMapping("create")

public void create(@RequestBody Employee request);

@GetMapping("view/{id}")

public Employee view(@PathVariable Integer userId);

}

作為業(yè)務(wù)邏輯的一部分,EmployeeService; 還需要調(diào)用外部 DB 集成點。因此,我們創(chuàng)建了EmployeeRepositoryPort以及實現(xiàn)了該接口的EmployeeServiceAdapter。

**EmployeeServiceAdapter.java**

——java

@Service

public class EmployeeServiceAdapter implements EmployeeRepositoryPort {

@PersistenceContext

private EntityManager entityManager;

@Transactional

@Override

public void create(String name, String role, long salary) {

Employee employee = new Employee();

employee.setName(name);

employee.setRole(role);

employee.setSalary(salary);

entityManager.persist(employee);

}

@Override

public Employee getEmployee(Integer userId) {

return entityManager.find(Employee.class, userId);

}

}

——

**EmployeeRepositoryPort.java**

——java

public interface EmployeeRepositoryPort {

void create(String name, String role, long salary);

Employee getEmployee(Integer userId);

}

以上就是“Java怎么實現(xiàn)六邊形架構(gòu)”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學(xué)習(xí)更多的知識,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


文章標題:Java怎么實現(xiàn)六邊形架構(gòu)
網(wǎng)頁鏈接:http://weahome.cn/article/poisgg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部