@PostConstruct注解是Java EE标准中定义的注解之一,也被Spring框架支持。使用@PostConstruct注解可以标记一个方法,在Bean初始化完成之后自动执行该方法。通常在该方法中完成一些初始化操作或者对Bean属性的赋值操作。
下面是@PostConstruct注解的一个示例:
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
private List<User> users;
@PostConstruct
public void init() {
users = userDao.getAllUsers();
}
@Override
public List<User> getAllUsers() {
return users;
}
}
在上面的示例中,使用@Service注解声明了UserServiceImpl类,并使用@PostConstruct注解标记了一个名为init()的方法。在该方法中,通过调用userDao.getAllUsers()方法来获取所有的用户列表,并将其赋值给users属性。由于@PostConstruct注解的存在,Spring框架会在Bean初始化完成后自动调用init()方法。这样,当调用getAllUsers()方法时,users属性已经被初始化好了,可以直接返回结果。
需要注意的是,@PostConstruct注解的方法只会在Bean初始化时执行一次,即只有在Bean实例化后的第一次使用时才会执行。如果想要在Bean销毁前执行一些清理操作,可以使用@PreDestroy注解。