Spring入门(一)-Spring框架简介
Spring框架
Spring框架是java应用最广泛的框架,它的成功来源于理念,而不是技术本身,它的理念包括IoC(Inversion of Control,控制反转) 和 AOP(AspectOrientedProgramming, 面向切面编程) 。 Spring是容器框架,用于配置Bean并维护Bean之间的关系的一种框架,Bean是Java中的任何一种对象。
Spring能够:
- 能够根据配置文件创建及组装对象之间的依赖关系。
- 面向切面编程能够帮我们无耦合的实现日志记录,性能统计,安全控制。
- 能非常简单的帮我们管理数据库事务。
- 提供了与第三方书库访问框架无缝集成。
- Spring能够与第三方wen框架无缝集成,
Spring的框架结构:
-
Data Access/Integeration 层包含有JDBC\ORM\OXM\JMS和Transaction模块
-
Web层包含了Web\Web-Servlet\WebSocket\Web-Porlet模块
-
AOP模块提供了一个符合AOP联盟标准的面向切面编程实现
-
Core Container(核心容器) :包含有Beans、Core、Contenxt和SpEL模块。
- Core模块:封装了框架依赖的最底层部分,包括资源访问、类型转换及一些常用工具类
- Beans模块: 提供了框架的基础部分,包括反转控制和依赖注入,其中BeanFactory是容器核心,本质是“工厂设计模式”的实现,所有应用中对象间的关系由框架管理。
- Context模块,以Core和Beans为基础,继承Beans模块功能并添加资源绑定,数据验证、国际化、javaEE支持,容器生命周期,事件传播等;核心接口是ApplicationContext
- EL模块:提供强大的表达式语言支持,支持访问和修改属性值,方法调用,支持访问及修改数组,容器和索引器,命名变量,支持算数和逻辑运算,支持从Spring容器获取Bean,他也支持列表投影、选择和一般的列表聚合等。
-
Test模块支持使用Jnint对Spring组件进行测试
IOC和DI简介
IoC: Incerse of Control(控制反转)
控制反转是一种设计思想,就是将原本在程序中手动创建对象的控制权交由Spring框架来管理。也就是说,Spring将我们从盘根错节的依赖关系中解放了。当前对象如果需要依赖另一个对象,只要打一个@Autowired注解,Spring就会自动创建好对象放入到@Autowired标注的变量中。从而实现松耦合。
正控:若要使用某个对象,需要自己去负责对象的创建。
反控:若要使用某个对象,只需要从Spring中获取需要使用的对象,不关心对象的创建过程,也就是把对象的创建过程交给了Spring框架。
DI:Dependency Injection(依赖注入)
DI:Spring创建对象的过程中,讲对象依赖属性(常亮,对象,集合),通过配置设置值给该对象。
###编写一个Spring程序
-
1、创建Spring项目(这里使用idea)
-
2、创建lib目录放进必要的jar包,并将lib设为编译目录
这里项目创建完成。
-
在package[pojo]下新建User类
-
在SpringConfig.xml中通过xml配置的方式装配Bean
-
在package[test]下新建testSpring类
-
运行测试代码
-
注
在这里,传统的方式是通过new关键字来主动创建一个对象。
而IOC方式 为由Spring来创建对象。直接从Spring中获取一个对象。IOC控制反转就是将本来自己new出对象改为从Spring中获取对象。从而实现了低耦合。
继续上面的项目
-
在pojo下创建一个LoginService类
-
在xml文件中配置LoginService对象:
-
在[testSpirng]中添加以下代码
-
运行测试代码
-
注: 在这里,传统的方式需要new来获取对象再用=运算符将对象引用赋值给变量。
而当这里使用了ioc来管理对象时,使用DI来注入对象,通过xml文件配置注入。