怎么让spring支持nutz的mvc

 我来答
千锋教育
2016-05-03 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
展开全部
怎么让spring支持nutz的mvc
www.MyException.Cn 网友分享于:2013-12-25 浏览:111次

如何让spring支持nutz的mvc

没见过nutz的可以先移步http://nutz.googlecode.com去看看。首先nutz本身是带了个ioc容器的,不过大伙都习惯spring的,那么怎么把spring引入进来呢?
首先,假设已经在web.xml里边配置好spring和nutz mvc
下面就是要定义一个IocProvider,例如我们把名字叫为SpringIocProvider,他是负责产生一个实现nutz的Ioc接口的容器:
public class SpringIocProvider implements IocProvider {
@Override
public Ioc create(NutConfig config, String[] args){
return new SpringIoc(config, args);
}
}

nutz除了提供Ioc接口,还提供了一个更加高级的Ioc2接口,我们这里的SpringIoc简单实现了Ioc2接口:
public class SpringIoc implements Ioc2 {
private WebApplicationContext appContext;

public SpringIoc(NutConfig config, String[] args)
{
ServletContext context = config.getServletContext();
appContext = WebApplicationContextUtils.getWebApplicationContext(context);
}

@Override
public void depose() {
}

@Override
public T get(Class type) throws IocException {
return get(type, Strings.lowerFirst(type.getSimpleName()));
}

@Override
public T get(Class type, String name) throws IocException {
return get(type, name, null);
}

@Override
public String[] getNames() {
return appContext.getBeanDefinitionNames();
}

@Override
public boolean has(String name) throws IocException {
return appContext.containsBean(name);
}

@Override
public void reset() {
}

@Override
public void addValueProxyMaker(ValueProxyMaker arg0) {
}

@Override
public T get(Class type, String name, IocContext context) {
return (T) appContext.getBean(name, type);
}

@Override
public IocContext getIocContext() {
return null;
}
}

spring的WebApplicationContext提供的api比较有限,所以这里的实现都挑保守的实现方式,不要见怪。最后就是在mainModule里边注明使用哪个IocProvider
@Modules(scanPackage = true)
@IocBy(args = { "" }, type = SpringIocProvider.class)
public class MainModule {
}

下面就可以使用原来nutz的ioc注解方式了,例如对某个action的参数通过@IocObj(”xx”)这样的方式就可以注入对象了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式