一般来说除非是entity.不然不会用new的形式。这样的话那容器就没意义了。
为什么要注解才能被注入属性。这是因为你并不是通过容器实例化的。所以容器也不会帮你注入property
UserService us = SpringContextUtils.getBean("userServiceImpl");
UserServiceImpl中的DAO是自动注入的。
而不用是 UserService us = new UserServiceImpl();
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Service;
@Service
public class SpringContextUtils implements ApplicationContextAware {
private static ApplicationContext applicationContext;
@Override
public void setApplicationContext(ApplicationContext context) throws BeansException {
applicationContext = context;
}
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
@SuppressWarnings("unchecked")
public staticT getBean(String name) throws BeansException {
if (applicationContext == null){
return null;
}
return (T)applicationContext.getBean(name);
}
}