近来忙于学习oracle,当回过头再看前几天刚学的spring3,发现,都忘了差不多了,趁现在还有点时间,赶紧恶补一下,顺便搬上博客,下次忘记时,好来这里瞧瞧!好了,就进入正题!
首先了解一下spring3:
1、Spring3是一个非常活跃的开源框架;它是一个基于IOC和AOP来构架多层JavaEE系统的框架,它的主要目地是简化企业开发。
2、Spring3提供了对开源社区中很多框架及JavaEE中很多技术的支持,让程序员很轻松能整合及使用这些框架技术。
3、Spring3以一种非侵入式的方式来管理你的代码,Spring提倡”最少侵入”,这也就意味着你可以适当的时候安装或卸载Spring 。
总之一句话,写最少的代码,干最多的事,虽然这是JQuery团队一直追逐的宗旨,我想在spring中也可以使用,毕竟,少写代码多干事,是所有码农最想看到的!不是吗?
Spring结构:
上图是从spring3中帮助文档中直接截下来的,里面涉及到的常用知识点,我将会在今后spring系列博客中一一讲解。本篇博文只为spring开篇,主要内容为搭建spring开发环境。
环境架设:
Spring3开发环境搭建非常简单,下面是通过helloWorld这例子解决spring3的环境搭设。
先说说明开发环境:
jdk6
spring3
eclipse3.7
第一步:导包
Spring3作为目前一个很火开源框架,能取代ejb霸主地位,必定有几把刷子,其中“非侵入式”开发模式就是一个经典。我们从spring3提供的源码包中可以看出:
共21一个jar,集成了java ee开发中大部分技术,你可以根据自己的开发需求,添加相应的jar包,实现spring管理。而我们的helloWorld程序只需要以下一些包就可以了,今后程序中用到什么包时,在详细跟各位解说!
org.springframework.asm-3.1.1.RELEASE.jar--用于字码处理(必须)
org.springframework.core-3.1.1.RELEASE.jar--spring ---核心工具包,访问资源(必须)
org.springframework.beans-3.1.1.RELEASE.jar ----核心容器(必须)
commons-logging.jar---spring ---spring依赖的唯一第三方,日志(必须)
org.springframework.context-3.1.1.RELEASE.jar ---- ----spring 提供在基础 IoC 功能上的扩展服务,此外还提供许多企业级服务的支持,如 邮件服务、任务调度、JNDI定位、EJB 集成、远程访问、 缓存以及各种视图层框架的封装等。
org.springframework.expression-3.1.1.RELEASE.jar ---- ----spring 表达式语言。
第二步:编写代码
public class HelloWorld {
private String msg;
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public void say()
{
System.out.println(msg);
}
}
代码很简单,就是一个普通的helloworld程序,其现实将传入的msg字串通过say方法打印出来!
第三步:配置spring环境
spring环境搭建主要是通过xml文件配置而成,具体如下
<!-- 部分1 -->
<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-3.0.xsd">
<!-- 部分2 -->
<!-- 配置组件,上面编写的helloWold类 -->
<bean id="sayBean" class="com.langfei.helloworld.HelloWorld">
<!-- 依赖注入 -->
<property name="msg" value="喜欢你,没道理! "></property>
</bean>
</beans>
上面的xml文件模板可以从spring3源码包中自带的实例,或帮助文档中获取。
部分1:spring文件头,为固定格式,配置spring开发环境,根据你运用的需要可以添加更多支持环境
部分2:spring编程核心是IOC和AOP,而此注意是ioc的体现,ioc是inversion of controll 控制反转的缩写,在此处大家不必深究,在之后的系列spring博文中将会详细讲解。在此之前,可以将部分2看成new HelloWorld("喜欢你,没道理!")就OK了。
第四步:编写测试类
public class SayMsg {
public static void main(String[] args) {
ApplicationContext app = new ClassPathXmlApplicationContext("beans.xml");
HelloWorld hw = (HelloWorld) app.getBean("sayBean");
hw.say();
}
}
测试类很简单,也是一个普通的java类,里面带有main方法
ApplicationContext app = new ClassPathXmlApplicationContext("beans.xml");
beans.xml 就是上面配置的spring环境xml文件,一般将该文件放置在src目录下。 ClassPathXmlApplicationContext类可以通过寻找classPath路径,从而找到bean.xml文件。ApplicationContext 是一个接口,对原始的BeanFactory进行功能增强,而BeanFactory为,spring容器的核心,它的职责包括:实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。这里我们可以简单地将ApplicationContext看成一个提供类实例的工厂,在Bean.xml文件中配置到的类都可以通过ApplicationContext获取。
HelloWorld hw = (HelloWorld) factory.getBean("sayBean");
“sayBean” 回头看xml文件配置,你会发现sayBean就是之前配置的<bean id>的id值,而该bean 的class属性指定的就是HelolWorld全类名,app通过这个id从spring容器中获取HelloWorld实例。
hw.say(); Helloworld实例调用自身方法,将打印出msg的内容!
第五步:运行
喜欢你,没道理!
这结果可能会奇怪,不必奇怪,这是spring另一项特色(依赖注入)导致的结果!各位估且记住,留个印象,下回继续分解!