§@SpringBean
IoC 容器支持 Spring IoC 容器作为外部容器,允许将 Spring IoC 容器中管理的 Bean 注入到对象中。
§1. 首先加入依赖
<dependency>
<groupId>com.github.subchen</groupId>
<artifactId>jetbrick-ioc-spring</artifactId>
<version>2.0.1</version>
</dependency>
§2. 看一个简单的例子
spring.xml
<bean id="dataSource" class="..." />
Java 代码
@IocBean
public class JdbcUtils {
@Inject
private Foo foo;
@SpringBean("dataSource")
private DataSource dataSource;
}
如果你的 Spring 在 web.xml
中进行了初始化(可以通过 WebApplicationContextUtils.getWebApplicationContext(ServletContext)
获取),那么 JdbcUtils.dataSource 将会成功的被注入。
如果你的 Spring 没有在 web.xml
中进行初始化,那么需要将 Spring 的 ApplicationContext
对象手动加入到 IoC 容器中。如下:
ApplicationContext appctx = ...
MutableIoc ioc = ...
ioc.addBean(ApplicationContext.class, appctx);