Spring入门1-基本概念
2016-04-24 15:14
597 查看
一、spring概念
Spring是一个轻量级的控制反转(IOC-inverse Object Control)和面向切面(AOP)的容器框架。spring的设计思想:单例模式和工厂模式
二、spring的框架优点
方便解耦,简化开发Spring就是一个大工厂,将所有对象创建和依赖关系维护,交给spring管理
AOP编程支持
Spring提供面向切面编程,方便实现对程序进行权限拦截、运行监控等功能
声明式事务的支持
只需要通过配置就可以完成对事务的管理,无需手动编程
方便程序测试
spring对junit4支持,可以通过注解方便的测试spring程序
方便继承各种优秀开源框架
spring其内部提供了对各种优秀框架的支持(struts 、 hibernate、mybatis)
降低javaEE API的使用难度
Spring对javaEE开发中非常难用的一些API(JDBC、远程调用等)都提供了封装,使API的使用难度降低
三、Spring技术知识点
核心技术IOC和AOP数据访问(持久层解决方案)
web层解决方案(SpringMVC)
集成(整合其他开源框架)
四、入门前期概念
IOC控制反转和DI(depedent Inject)依赖注入IOC:将原本在程序中手动创建的HelloService对象的控制权交给Spring框架管理,简单说,就是创建HelloService对象控制权被反转到了Spring框架。
DI:依赖注入(构造方法注入,set注入)通过配置进行注入
IOC 和 DI 的区别
IOC控制反转指将对象的创建权反转到了spring容器,DI依赖注入指spring创建对象的过程中,将对象依赖属性通过配置文件进行注入。
Spring工厂接口
BeanFactory接口和ApplicationContext接口区别?
(1) ApplicationContext接口继承BeanFactory接口,Spring核心工厂是BeanFactory, BeanFactory采取延迟加载,第一次getBean时才会初始化Bean,ApplicationContext是会在加载配置文件时,初始化Bean
(2)ApplicationContext是对BeanFactory扩展,(国际化处理,事件传递 Bean自动装配 各种不同应用层的Context实现)
开发中基本都用ApplicationContext,web项目用WebApplicationContext,很少用到BeanFactory
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml" ); UserService userService = (UserService)ctx.getBean("userService" ); User u = new User(); userService.add(u);
五、Spring配置步骤
1.下载Spring最新开发包http://www.springsource.org/download/community 下载spring3.2 的开发包。目录结构如下:
docs 存放API和 规范文档
libs 开发jar包
schemas 开发过程中需要导入xml的schema 约束
2、复制Spring开发 jar包到工程
复制核心容器包含jar包 (beans、core、context、expression language)
spring 的 jar包 需要依赖 commons-logging的 jar (commons-logging 类似 slf4j 是通用日志组件,需要整合 log4j )
3、编写Spring核心xml配置文件
在src目录创建 applicationContext.xml
在 docs\spring-framework-reference\html 找到 xsd-config.html
4、在程序中读取Spring配置文件
通过Spring框架获得Bean,完成相应操作。加载classpath(src):
new ClassPathXmlApplicationContext(“applicationContext.xml”);
5、创建Spring 核心工厂对象
通过工厂的getBean 获得配置实例对象 (UserService ) applicationContext.getBean(“userService “);
相关文章推荐
- SpringMVC传值中文乱码解决方案
- 新手学Struts(一)----JSP+Servlet讲解MVC实现原理
- Java中的static的使用
- [翻译]Java Garbage Collection Basics Java 垃圾回收基础 之7 总结
- Java千百问_05面向对象(013)_泛型如何使用
- [翻译]Java Garbage Collection Basics Java 垃圾回收基础 之6 Java垃圾回收器
- [翻译]Java Garbage Collection Basics Java 垃圾回收基础 之5 自己动手观察
- [翻译]Java Garbage Collection Basics Java 垃圾回收基础 之4 分代的垃圾回收过程
- (30)导入时如何定制spring-boot依赖项的版本【转载】【从零开始学Spring Boot】
- Java千百问_05面向对象(012)_泛型是什么
- [翻译]Java Garbage Collection Basics Java 垃圾回收基础 之3 描述垃圾回收
- java之多线程
- HashMap源码注解 之 resize()方法(七)
- Struts2:ClassNotFoundException: org...dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
- JAVA集合框架之List
- 20145337《Java程序设计》第八周学习总结
- java 图片缩略图的两种方法
- myeclipse2015ci最高只适应spring3.1
- Struts项目目录及注意点
- Java程序猿成神之路