我已经开始学习Hibernate,需要了解与实体类和可能的方法逻辑相关的最佳实践。以下是我的简单示例:(
@Entity
public class Service {
@Id
@GeneratedValue
@Column(name = "service_id")
private int serviceID;
@Column(name = "service_name")
private String serviceName;
@Column(name = "server_name")
private String serverName;
@Column(name = "server_os")
private String serverOS;
@Column(name = "port")
private Integer port;
@Column(name = "location")
private String location;
/*
* Origin of my question (simple logic for microservices)
*/
private boolean pingURL() {
... do something with port etc ...
}
public void boot() {
... do something with port and pingURL() ...
}
我的问题是,把我的";逻辑";在这里这是一个非常简单的例子,但我想以一种干净的方式正确地学习。比方说,这些方法有5到10种。也可以吗?有些事情困扰着我,我认为正确的方法是将方法拆分为单独的类或类似的东西。
我的控制器像这样(简单的例子(
@PostMapping("/bootService")
public void bootService(@RequestBody Service service) {
service.boot();
}
所以,如果我想把";逻辑";从我的实体来看,我该如何以最佳方式处理它,以便我仍然可以在控制器中使用Service(Service.boot(((?
谢谢你帮我:(
***编辑:
有了@Alien的答案,这就是我的想法,我这样对待它:
public class ServiceHandler {
private Service service;
public ServiceHandler(Service service) {
this.service = service;
}
/*
* Origin of my question (simple logic for microservices)
*/
private boolean pingURL() {
... do something with port etc ...
}
public void boot() {
... do something with port and pingURL() ...
}
}
我的控制器看起来是这样的:
@PostMapping("/bootService")
public boolean bootService(@RequestBody Service service) {
ServiceHandler serviceHandler = new ServiceHandler(service);
serviceHandler.boot();
}
这更好还是我能做得更好?
实体类应该只包含字段和getter/setter、hashcode和equals方法。
或者一些处理瞬态变量数据的方法(如果有的话(。
在某个服务类中编写您的逻辑。