现在开始聊一下spring这个框架吧,现在以前国内ssh比较流行现在是ssm,不过无论那个框架组合,其不会离开其中一个组成部分spring。
现在看一下百度对spring的解释:
Spring是Java EE编程领域的一个轻量级开源框架,该框架由一个叫Rod Johnson的程序员在 2002 年最早提出并随后创建,是为了解决企业级编程开发中的复杂性,实现敏捷开发的应用型框架 。
Spring是一个开源容器框架,它集成各类型的工具,通过核心的Bean factory实现了底层的类的实例化和生命周期的管理。在整个框架中,各类型的功能被抽象成一个个的 Bean,这样就可以实现各种功能的管理,包括动态加载和切面编程。
Spring解决了开发者在J2EE开发中遇到的许多常见的问题,提供了功能强大IOC、AOP及Web MVC等功能。Spring可以单独应用于构筑应用程序,也可以和Struts、Webwork、Tapestry等众多Web框架组合使用。
Spring框架主要由七部分组成,分别是 Spring Core、 Spring AOP、 Spring ORM、 Spring DAO、Spring Context、 Spring Web和 Spring Web MVC。
其实上面说了这样多,其实简单的总结如下:
当然使用spring自然有其优点,不然也不会开发这个框架,而所有的人都去学习。但是理论的东西你不说还不是那回事,所以先聊一下其优点(不过还是老规矩,直接黏贴复制一下了):
非侵入式设计
Spring是一种非侵入式(non-invasive)框架,它可以使应用程序代码对框架的依赖最小化。
方便解耦、简化开发
Spring就是一个大工厂,可以将所有对象的创建和依赖关系的维护工作都交给Spring容器管理,大大地降低了组件之间的耦合性。
支持AOP
Spring提供了对AOP的支持,它允许将一些通用任务,如安全、事务、日志等进行集中式处理,从而提高了程序的复用性。
支持声明式事务处理
只需要通过配置就可以完成对事务的管理,而无需手动编程。
方便程序的测试
Spring提供了对Junit4的支持,可以通过注解方便的测试Spring程序。
方便集成各种优秀框架
Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Struts、Hibernate、MyBatis、Quartz等)的直接支持。
降低Java EE API的使用难度
Spring对Java EE开发中非常难用的一些API(如:JDBC、JavaMail等),都提供了封装,使这些API应用难度大大降低。
还是老规矩,对于代码或者框架,如果单独看理论说实话谁都懵逼,不过首先要做一件事情,那就是搭建环境。
下载spring的jar包地址:https://repo.spring.io/ui/native/release/org/springframework/spring/ 可以下载所需要的版本。
然后解压后再libs中查看jar包
不过初体验的话,不用导入所有的jar包,导入核心基础几个即可,不过这个也需要一个log日志jar。所以导入的jar包如下:
其实可以看到其对应着spring结构图中的这四部分:
而且你导入上面的jar包之后,在ide中创建xml文件的时候会有一个提示如下:
创建spring配置文件。
然后创建文件如下:
<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.xsd">
<bean id="person" class="com.xzd.test.Person">bean>
beans>
Person类如下:
public class Person {
public void eat(){
System.out.println("中餐才是最好的");
}
}
test方法:
因为spring是一个javaweb中常用的框架,一般不会创建main方法,进行测试而是使用@Test注释调用,如果没有导入junit 的jar包会报错,可以先写好@Test,然后使用快捷键Alt+Enter,如下:
选择自己需要的版本junit即可,然后如下test类:
public class test {
@Test
public void testmethod(){
// 首先加载配置文件: 配置文件创建在 src路径下
ApplicationContext applicationContext= new ClassPathXmlApplicationContext("personbean.xml");
// 创建对象 这个对应的是xml中 bean标签中的id
Person person= (Person) applicationContext.getBean("person");
// 如果不想强转也可以如下写: Person person = applicationContext.getBean("person", Person.class);
person.eat();
}
}
运行后可以完全输出:
这个只是简单的演示,下一篇开始具体聊一些原理,以及更详细的用法,本篇感受一下spring的魅力即可。