我正在使用Spring Boot。请在我的情况下建议最佳实践。
我的参训班有参项:
姓名,地址,性别,公司工作,年龄,职业等。。
我将从其他系统接收的这些参数作为personDTO对象,该对象将作为后期请求出现在正文中
所以我正在编写一个创建人的api。在这里我不能使用spring bean,因为它是单例的,一次可能有多个请求。(获取/发布下面的note3)
因此create api函数将在func下面调用。 请提出利用弹簧靴功能而不是使用新的Person来创建多个对象的最佳方法
注意-:1)我正在数据库中保存人员类。
注-:2)我在body参数中使用personDto对象,因为同一dto对象用于在项目中创建其他类,这将为其他类提供额外的参数。因此,不要专注于personDto类。
注3-:我不能使用单例,因为有人说有人在使用get api,因为它是单例,它将矛盾,它将返回错误的参数。因此使用了new。
void createPerson(personDto pDto)
{
Person p = new Person();
p.setName(pDto.getName());
P.setAge(pDto.getAge());
p.setSex(pDto.getSex());
.
"like this and opening transaction session to rollback if object is not
created"
}
答案 0 :(得分:0)
很显然,Person
不能是单例,因为您应根据每个请求创建这些对象。
现在,如果您绝对需要它,则可以在Spring中将Person创建为具有原型作用域的bean。
将PersonDTO转换为Person的服务将是单例,如注释中所述,但是其“转换”方法可以获取原型。
有很多技术方法可以将原型注入单例。看看Here
但是,我想强调的是,与单例不同,
因此,您基本上可以获得以下内容:
那么在这一点上使用Spring有什么意义呢?
个人(这只是我的意见/建议)倾向于在Spring之外处理各种转化者,建造者等等,而在Spring保留服务/控制器(长寿对象)。