java Spring学习记录

最近有在学习spring,觉得spring 的功能实在是太强大了,现在总结以下今天的所学,感觉学到的有点少,不

过,要把spring学懂,估计还要加倍的努力才行,连老师都说,spring好多的人也只是会用,其实根本就不知道

底曾的实现,不过也学的挺过瘾的:
先简单的介绍以下我所了解的spring把,如果有高手看到这篇文章的话,希望能加以补充:
1,先说以下我们做开发时通常所用到的架构体系,首先要提到就是ejb,我们可以用ejb实去实现大的工

程项目,可是,ejb所带给我们的烦恼就是太复杂,要付出很大的努力去学习,去研究,还要不断的实现,不过

ejb隶属于j2ee中的内容,很多的时候,我们所接触的框架,大都是属于第三方的,可以说用ejb开发是j2ee开发

最黑暗的阶段,这是我们老师常说的一段话。今天我也来引用一下。
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的核心啊,理解了这两个东东开发过程就更加的明了了,可惜我还没明白,等明白了在说把。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值