Spring new对象时注解失效

2025-04-10 01:18:32
推荐回答(2个)
回答1:

一般来说除非是entity.不然不会用new的形式。这样的话那容器就没意义了。

为什么要注解才能被注入属性。这是因为你并不是通过容器实例化的。所以容器也不会帮你注入property

回答2:

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 static  T getBean(String name) throws BeansException {
        if (applicationContext == null){
                    return null;
                }
        return (T)applicationContext.getBean(name); 
    }
}