java - 是否可以在@Repository 中调用服务?
问题描述
我是java spring-mvc current的新手我有一个调用@Repository的@Controller,我想在@Repository中使用@Service是可能的还是正确的方法是什么?
我试着把服务放在存储库里面
@RequestMapping(value = "/activa-servicio", params={"cupon"}, method = RequestMethod.POST, produces = {MediaType.APPLICATION_JSON_VALUE})
@ResponseBody
public String activaServicio(HttpServletRequest request,@RequestParam(value="cupon") String cupon) throws IOException {
String json=publicDAO.activaServicio(cupon);
System.out.println(json);
return json;
}
@Repository
public class PublicDAO {
@Autowired
JdbcTemplate jdbcTemplate;
EmailService emailService;
public String activaServicio(String cupon) {
emailService.getActivationConfirmation();
}
我希望 EmailService 被解雇,但当前 EmailService 显示空异常
解决方案
EmailService
为空,因为您从未设置它。该@Autowired
注释仅适用于JdbcTemplate jdbcTemplate
.
此外,不鼓励字段注入,因此最好的办法是使用构造函数注入。它也不太冗长。
private JdbcTemplate template;
private EmailService service;
@Autowired
public PublicDao(JdbcTemplate jt, EmailService es) {
this.template = jt;
this.service = es;
}
推荐阅读
- asp.net-core - 如何在 MVC 核心视图中将当前选择值传递给路由 id
- shopify - 当 .btn 仅定义类时,Shopify 将 .text-link 类添加到按钮
- data-structures - 链表中的相邻节点交换但在输出 1 节点丢失
- angular - Angular 应用程序无法解析 main.ts、polyfile.test 和 style.css
- c# - 网页部署稳定性
- jquery - jQuery load() a href 链接加载到 div 不与我的函数交互,但该函数在初始页面上工作
- c# - WPF 组合框显示来自数据库的默认值
- php - 如何在 HTML 中显示 SQL 查询的结果?
- tabs - 自动制表记事本++
- firebase - 从 Firestore 中检索数据 - Firebase - Flutter