浏览 2858 次
锁定老帖子 主题:java Spring学习记录
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-04-22
最后修改:2009-05-01
过,要把spring学懂,估计还要加倍的努力才行,连老师都说,spring好多的人也只是会用,其实根本就不知道 底曾的实现,不过也学的挺过瘾的: 先简单的介绍以下我所了解的spring把,如果有高手看到这篇文章的话,希望能加以补充: 1,先说以下我们做开发时通常所用到的架构体系,首先要提到就是ejb,我们可以用ejb实去实现大的工 程项目,可是,ejb所带给我们的烦恼就是太复杂,要付出很大的努力去学习,去研究,还要不断的实现,不过 ejb隶属于j2ee中的内容,很多的时候,我们所接触的框架,大都是属于第三方的,可以说用ejb开发是j2ee开发的标准模板,但是,ssh更加简化了j2ee的开发,所以好多时候我们用到的都是ssh开发模式 2,下面我们看看开发时我们都用什么? (1),struts+spring+hibernate (2),struts+spring+Ejb (3),javaServer face+spring+iBATIS (4),spring +spring+jdo (5),flex+spring+hibernate (6),struts+spring+jdbc 相信大家都见过这些,但是你看到spring在这其中的优势了吗?对了,spring的灵活性可以说是完美了,他可以 搭配任何其他的框架进行系统的开发,也就是说他是一个非侵入性框架。 3,我们来通过一个小小的例子来见识以下spring的强大功能吧: 还记得我们刚开始学习java所用到的helloworld吗?今天我就写他吧: 事先请先将spring的核心jar包导入到jdk下,大家应该知道放到什么地方把?对就是: C:\Program Files\Java\jdk1.5.0_06\jre\lib\ext下 先来建一个包 bean,在spring 中我们所写的类大都是bean,因为spring的底层实现非常的完美,几乎不用我们写多少代码: 下面一段代码就是我们的HelloWorld.java: package bean; public class HelloWorld { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } public void sayHello(){ System.out.println("hello, "+name); } } 不用多说,底下的xml文件是spring 中最核心的部分,可以这么说我们做spring的开发,实际上不是在写代码, 而是在填写配置文件: 可以随意命名,这里我命名成applicationContext.xml: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <bean id="hello" class="bean.Hello"> <!--先来导如我们所写的bean 文件HelloWorld.java 有id这一属性是为了后面能通过这个自定义的id找 到这个bean,class后面跟的是类的路径--> <property name="name" value="world"/> <!--这是bean的一个属性,name跟的是属性值,value是我为它赋的值,--> </bean> </beans> 下面是一个测试类: import java.io.FileInputStream; import java.io.InputStream; import org.springframework.beans.factory.xml.XmlBeanFactory; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.Resource; import bean.Hello; public class Test { public static void main(String[] args) { try { // Resource res=new ClassPathResource("applicationContext.xml"); //导入配置文件 // XmlBeanFactory factory= new XmlBeanFactory(res); //声明工厂类对象 // // Hello h =(Hello) factory.getBean("hello"); //通过工厂类拿出bean 对象,下同 // h.sayHello(); } catch (Exception e) { e.printStackTrace(); } // ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); // // Hello h = (Hello)ctx.getBean("hello"); // h.sayHello(); } } 可以有多种方法去拿到bean里面的对象,这样的话我们如果修改的话,只要不牵扯到功能问题,都可以通过修改 配置文件来完成,这样的话总比我们不断的重复的写某一个功能类要强的多把? 可以跟spring中的这一功能做对比的是我们同样可以用老方法编写配置文件,用工厂模式去实现,不过那样的话 我们要写的代码就可能多很多了,是不是?这样看来,用spring开发简直就是天上下馅饼了,呵呵 4,补充两个概念: ioc控制反转:inverse or control,怎样去拿到bean的对象, iod: applicationContext,beanFactory di依赖注入:depency injection 这两个东东可是spring的核心啊,理解了这两个东东开发过程就更加的明了了,可惜我还没明白,等明白了在说 把。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-04-22
现在动不动就拿ejb 跟 spring 比. 搞得就跟自己搞过ejb开发一样. 我估计你们老师恐怕也没搞过吧..
还是不要人云亦云的好.. |
|
返回顶楼 | |
发表时间:2009-04-22
Saito 写道 现在动不动就拿ejb 跟 spring 比. 搞得就跟自己搞过ejb开发一样. 我估计你们老师恐怕也没搞过吧.. 还是不要人云亦云的好.. |
|
返回顶楼 | |
发表时间:2009-04-22
我是觉得说5年经验以内的都应该没搞过..
不过听你介绍老师. 应该搞过.. 培训还是少去的好.. |
|
返回顶楼 | |
发表时间:2009-04-23
Saito 写道 我是觉得说5年经验以内的都应该没搞过..
不过听你介绍老师. 应该搞过.. 培训还是少去的好.. 除了5年以内没有搞过ejb不赞同外,其余都赞同。 |
|
返回顶楼 | |
发表时间:2009-04-23
LZ的代码还是好好检查一下吧,java代码里写的是public class HelloWorld,配置文件的class属性写的是“bean.Hello”呢。。。我也是刚看了一点IoC的东西,呵呵
|
|
返回顶楼 | |
发表时间:2009-05-12
我的神,一群小孩子
|
|
返回顶楼 | |