package com.lhoussaine.springjsfjpa.entities;
@Table(名称= “地址”) @实体 公共类地址{
@Id @GeneratedValue(strategy = GenerationType.AUTO) private int id; private String streetNumber; private String streetName; private String city; getter/setter }
我有30个实体。
现在存储库。
package com.lhoussaine.springjsfjpa.repositories;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.rest.repository.annotation.RestResource;
import com.lhoussaine.springjsfjpa.entities.Address;
@RestResource(rel =“address”,path =“address”)
public interface AddressRepository扩展了JpaRepository {
}
这里我不需要实现CRUD操作!感谢spring-data-jpa!我想要相同的控制器和服务标准。
public interface IAddressService { }
package com.lhoussaine.springjsfjpa.services.generic;
import java.util.List;
公共抽象类GenericService {
public abstract T create(T保存);
public abstract void remove(T删除);
public abstract T findById(K id);
public abstract List findAll(); 公共摘要T removeById(K id);}
package com.lhoussaine.springjsfjpa.services.impl;
@服务 @Transactional 公共类AddressService扩展GenericService实现IAddressService {
@Autowired私有AddressRepository iaddressRepository;公共地址创建(已保存地址){
地址=已保存; return iaddressRepository.save(address);
}public void remove(Address deleted){ iaddressRepository.delete(删除);
}公共地址findById(整数id){
return iaddressRepository.findOne(id);
}public List findAll(){
return iaddressRepository.findAll();
}公共地址removeById(整数id){
地址addr = iaddressRepository.findOne(id);
如果(地址!= NULL){ iaddressRepository.delete(ADDR);
}
返回地址; } }
现在的问题是:用控制器怎么办? 为每个类开发控制器?知道我有30个服务类。 是否存在接近相同标准的东西,例如spring-data-jpa,但是对于服务和控制器? 正如您所看到的服务类!我不得不创建genericService类,并为我的包实体中的每个类创建接口。 如果不清楚请告诉我! 感谢
答案 0 :(得分:1)
控制器和服务不应该是通用的。尽管可以理解应用程序中的每个实体都可以通过ID创建或找到,但服务应该只具有实现应用程序业务逻辑所需的方法。
应创建控制器以实现应用的UI层。因此,一旦您有关于应用程序的特定页面应该如何工作的规范(或清晰的想法),那么实现te控制器和服务来实现此页面。
如果您的应用程序非常通用,它所做的只是创建,更新和删除表中的行,那么您不需要实现任何东西:像PHPMyAdmin这样的通用数据库Web界面。
答案 1 :(得分:0)
只能在没有注释的情况下使用通用服务和控制器,即使用XML配置。对于控制器,您还必须设置Map< [methodName],org.springframework.web.bind.annotation.RequestMapping>为每个控制器和扩展(覆盖)org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping使用它。 请参见示例https://sites.google.com/site/beigeerp/home/spring-generic-controller