@Autowired @Postconstruct
时间: 2023-10-07 07:12:48 浏览: 219
@Autowired和@PostConstruct是Java中的注解。
@Autowired是Spring框架中的注解,用于自动装配依赖关系。它可以应用于构造函数、属性和方法上。当Spring容器创建Bean时,会自动搜索容器中匹配类型的Bean,并将其注入到被@Autowired注解标记的位置。这样可以避免手动编写依赖注入的代码。
@PostConstruct是Java EE中的注解,它用于标记一个方法,在对象被创建后执行。通常用于在对象初始化阶段执行一些特定的逻辑。在Spring框架中,@PostConstruct注解可以与@Autowired注解一起使用,确保在依赖注入完成后执行特定的初始化逻辑。
需要注意的是,这些注解的具体行为和作用会根据使用的框架和环境而有所不同。以上是它们在Spring框架中的一般用法。
相关问题
抽象类@Autowired, @PostConstruct 为null
抽象类是不能被实例化的,因此不能被自动装配。如果试图将一个抽象类标记为@Autowired,则会出现NullPointException异常。同样的道理,如果在抽象类中使用@PostConstruct注解方法,也会导致NullPointerException异常。
如果您需要使用@Autowired和@PostConstruct注解,请将其应用于具体的子类,而不是抽象类。在子类中实现抽象方法,并在子类中使用@Autowired和@PostConstruct注解方法,这样就可以正确地注入依赖项并执行初始化方法了。
@RestController public class YourController { @Autowired private ScheduledExecutorService scheduledExecutorService; @Autowired private YourService yourService; @PostConstruct public void init() { scheduledExecutorService.scheduleAtFixedRate(new SaveResultTask(yourService), 0, 10, TimeUnit.MINUTES); } @GetMapping("/result") public List<Map<String, Object>> getResult() { return yourService.getResultFromNewTable(); } } getResult 不调用
在上述代码中,getResult 是一个 GET 请求的处理器方法,它返回 YourService 类中 getResultFromNewTable 方法的结果。如果 getResult 方法没有被调用,那么可能是因为它没有被前端或其他服务调用,或者可能是因为它没有正确地映射到正确的 URL。如果您想要使用此方法获取结果,请确保它被正确地映射到您的应用程序中,并确保您的前端或其他服务正确地调用了它。
阅读全文