我是 Spring 开发的初学者。我试过使用SpringBoot2.4.1。激活我为该用户创建的激活链接,但它会导致以下错误:
Error starting ApplicationContext.To display the conditions report re-run your application with 'debug' enabled.
2021-01-10 00:07:22.711 ERROR 9560 --- [ restartedMain] o.s.boot.SpringApplication : Application run failed at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject
这是我的代码:(存储库)
@Repository
public interface UsersRepositor extends JpaRepository<Users,Integer> {
public Users findByEmail(String email);
public Users findByToken(String token);
@Query("update Users U set U.active=true where U.token =:token and u.id:id")
@Modifying
@Transactional
public void activeUsersByTokenAndId(@Param("token")String token,@param("id")int id);
}
这是我的代码:(控制器)
@Controller
public class ActivationController {
@Autowired
UsersRepositor usersRepositor;
@GetMapping(value = "/activation/{token}")
public String activeUsersByToken(
@PathVariable("token")String token
){
Users users=usersRepositor.findByToken(token);
if (users !=null){
usersRepositor.activeUsersByTokenAndId(token,users.getId());
}
return "redirect:/login";
}
}
1条答案
按热度按时间gk7wooem1#
要使用SpringBoot,最好的方法是使用/导入SpringBootStarter依赖项,请参见pom.xml定义示例。
在您的示例中,我做了一些更改,如下所示:
通常域对象的名称是单数,请使用user而不是users
更改存储库以删除@transactional并修复@param(较低)和查询错误。
添加服务实现
将控制器更改为使用服务
运行应用程序