仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 743|回复: 11
打印 上一主题 下一主题

[学习教程] 来看Guice与Spring框架的区分

[复制链接]
分手快乐 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:13:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
java也能做一些底层语言开发做的事情(难度很高,不是java顶尖高手是做不来的),
依附注进,DI(DependencyInjection),它的感化天然不用多说,说起DI容器,比方spring,picoContainer,EJB容器等等,克日,google出生了更轻便的DI容器……Guice!
空话未几讲了,先看看Guice是怎样完成注进的吧。
界说一个复杂的service接口和它的完成吧!
publicinterfaceMyService...{
voidmyMethod();
}
publicclassMyServiceImplimplementsMyService...{
publicvoidmyMethod()...{
System.out.println("Hello,World!");
}
}
以上是最一般的接口和实在现,没甚么可说的。
界说一个测试类,这个类里边包含service对象的一个援用,这个对象是必要Guice举行注进的。
importcom.google.inject.Inject;
publicclassClient...{
MyServiceservice;
@Inject//告知容器,这里的service对象的援用,必要举行注进
voidsetService(MyServiceservice)...{//这里的办法名字能够恣意界说
this.service=service;
}
publicvoidmyMethod()...{
service.myMethod();
}
}
这里除加了一个@Inject,和Spring的设置没有任何的区分,@Inject,是暗示对容器说,这里的service必要打针,比及运转的时分,容器会拿来一个实例给service,完成打针的历程。
界说Guice的Module文件,告知容器怎样举行注进。
importcom.google.inject.Binder;
importcom.google.inject.Module;
importcom.google.inject.Scopes;
publicclassMyModuleimplementsModule...{
publicvoidconfigure(Binderbinder)...{
binder.bind(MyService.class).to(MyServiceImpl.class).in(Scopes.SINGLETON);
//这句代码的意义是说:运转时静态的将MyServiceImpl对象赋给MyService界说的对象,
并且这个对象是单例的。
}
}
创立测试类
importcom.google.inject.Guice;
importcom.google.inject.Injector;
publicclassTest...{
publicstaticvoidmain(String[]args)...{
MyModulemodule=newMyModule();//界说打针划定规矩
Injectorinjector=Guice.createInjector(module);//依据打针划定规矩,天生打针者
Clientclient=newClient();
injector.injectMembers(client);//打针者将必要打针的bean,依照划定规矩,把client这个客户端举行打针
client.myMethod();
}
}
运转测试类,把持台输入:Hello,World!
<p>
C#是盗用了Java的源代码,仿照开发的,原因是Java是开源的啊,盗了也白盗,还有一点,开发C#语言的团队是就是开发Java语言的团队,是微软重金挖过去的啊
若相依 该用户已被删除
沙发
发表于 2015-1-20 17:28:47 | 只看该作者
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.ckuyun.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
飘灵儿 该用户已被删除
板凳
发表于 2015-1-25 11:29:47 | 只看该作者
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
海妖 该用户已被删除
地板
发表于 2015-2-2 21:55:11 | 只看该作者
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
若天明 该用户已被删除
5#
发表于 2015-2-4 12:43:14 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
6#
发表于 2015-2-10 09:35:45 | 只看该作者
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
活着的死人 该用户已被删除
7#
发表于 2015-2-11 09:27:04 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
简单生活 该用户已被删除
8#
发表于 2015-3-2 08:46:28 | 只看该作者
Java 编程语言的风格十分接近C、C++语言。
莫相离 该用户已被删除
9#
发表于 2015-3-11 02:39:14 | 只看该作者
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
透明 该用户已被删除
10#
发表于 2015-3-12 00:32:20 | 只看该作者
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
飘飘悠悠 该用户已被删除
11#
发表于 2015-3-12 10:19:03 | 只看该作者
Java是一种计算机编程语言,拥有跨平台、面向对java
冷月葬花魂 该用户已被删除
12#
发表于 2015-3-19 19:56:04 | 只看该作者
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 01:02

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表