抽象类 autowired
时间: 2023-08-17 17:12:39 浏览: 139
在使用抽象类时,可以使用@Autowired注解来实现依赖注入。然而,抽象类本身无法被实例化,因此无法被Spring容器托管。为了解决这个问题,可以在抽象类的子类中使用@Autowired注解来注入实例对象。子类可以被实例化并由Spring容器托管,这样抽象类中注入的实例对象就能正常注入了。可以通过子类注入的方式来实现抽象超类中的实例注入。另外,也可以在抽象类的设置方法上使用@Autowired注解来实现注入。[1][2][3]
相关问题
抽象类autowired
@Autowired 是 Spring Framework 中的一个注解,用于自动装配 Bean。它可以用于字段、构造函数、Setter 方法和配置方法上。
抽象类是一种特殊的类,不能被实例化,只能被继承。因此,抽象类上使用@Autowired 注解是无效的,因为它不可能被实例化。但是,抽象类中的具体子类可以使用@Autowired 注解来自动装配依赖项。当子类被实例化时,Spring 会自动注入所需的依赖项。
抽象类@Autowired, @PostConstruct 为null
抽象类是不能被实例化的,因此不能被自动装配。如果试图将一个抽象类标记为@Autowired,则会出现NullPointException异常。同样的道理,如果在抽象类中使用@PostConstruct注解方法,也会导致NullPointerException异常。
如果您需要使用@Autowired和@PostConstruct注解,请将其应用于具体的子类,而不是抽象类。在子类中实现抽象方法,并在子类中使用@Autowired和@PostConstruct注解方法,这样就可以正确地注入依赖项并执行初始化方法了。
阅读全文