获取Spring容器中注入的Bean对象有两种方法:使用注解获取和使用ApplicationContext获取。
- 使用注解获取
我们可以使用Spring提供的注解@Autowired
或@Resource
注解来获取注入的Bean对象。
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class UserService {
@Autowired
private UserDao userDao;
public void printUsername() {
System.out.println(userDao.getUserName());
}
}
在上述代码中,我们使用@Autowired
注解将userDao
对象注入到UserService
对象中。同时,我们还可以使用@Resource
注解来获取注入的Bean对象。
import javax.annotation.Resource;
@Service
public class UserService {
@Resource
private UserDao userDao;
public void printUsername() {
System.out.println(userDao.getUserName());
}
}
其中,@Autowired
注解可以根据类型自动装配,而@Resource
注解可以根据名称自动装配。
- 使用ApplicationContext获取
我们可以使用Spring提供的ApplicationContext
类来获取注入的Bean对象。
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class MainApp {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
UserService obj = (UserService) context.getBean("userService");
obj.printUsername();
}
}
在上述代码中,我们使用ApplicationContext
类加载Spring配置文件,然后通过调用context.getBean("userService")
方法获取注入的UserService
对象。其中,userService
是我们在Spring配置文件中定义的Bean名称。
<bean id="userService" class="com.example.UserService">
<property name="userDao" ref="userDao" />
</bean>
<bean id="userDao" class="com.example.UserDao">
<property name="userName" value="John" />
</bean>
在上述代码中,我们通过Spring配置文件定义了userService
和userDao
两个Bean对象,其中,userService
中的userDao
属性被设置为userDao
对象。在获取UserService
对象时,Spring会自动将userDao
对象注入到userService
中。
综上所述,我们可以使用注解或ApplicationContext
类来获取Spring容器中注入的Bean对象。使用注解更加简便快捷,而使用ApplicationContext
可以更加灵活地操作Spring容器中的Bean对象。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java 如何从spring容器中获取注入的bean对象 - Python技术站