【转】Spring学习---Spring 学习总结
什么是Spring ?
Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson在其著作Expert One-On-One J2EEDevelopment and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为J2EE 应用程序开发提供集成的框架。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。Spring的核心是控制反转(IoC)和面向切面(AOP)。简单来说,Spring是一个分层的JavaSE/EEfull-stack(一站式) 轻量级开源框架。
EE开发分成三层结构:
* WEB层:Spring MVC.
* 业务层:Bean管理:(IOC)
* 持久层:Spring的JDBC模板.ORM模板用于整合其他的持久层框架.
为什么学习Spring?
方便解耦,简化开发
Spring就是一个大工厂,可以将所有对象创建和依赖关系维护,交给Spring管理
AOP编程的支持
Spring提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能
声明式事务的支持
只需要通过配置就可以完成对事务的管理,而无需手动编程
方便程序的测试
Spring对Junit4支持,可以通过注解方便的测试Spring程序
方便集成各种优秀框架
Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Struts、Hibernate、MyBatis、Quartz等)的直接支持
降低JavaEE API的使用难度
Spring 对JavaEE开发中非常难用的一些API(JDBC、JavaMail、远程调用等),都提供了封装,使这些API应用难度大大降低。
Spring的版本:
Spring 3.X 4.X 5X 介绍:https://blog.csdn.net/bntX2jSQfEHy7/article/details/78918119
下载路径:http://repo.springsource.org/libs-release-local/org/springframework/spring/
解压后Spring目录结构:
* docs:API和开发规范.
* libs:jar包和源码.
* schema :约束
IOC的底层实现原理
IOC:Inversion ofControl 控制反转. 指的是 对象的创建权反转(交给)给Spring.作用是实现了程序的解耦合.
开发步凑:
1)下载Spring的开发包.
2)创建web项目,引入Spring的开发包
3)引入相关配置文件:
4)编写相关的类:
5)完成配置:
6)编写测试程序:
7)IOC和DI:
IOC :控制反转,将对象的创建权交给了Spring.
DI :DependencyInjection 依赖注入.需要有IOC的环境,Spring创建这个类的过程中,Spring将类的依赖的属性设置进去.
配置STS的XML的提示
复制路径:
* http://www.springframework.org/schema/beans/spring-beans.xsd
查找XML Catalog:
点击Add..
Spring中的工厂
1)ApplicationContext
2)BeanFactory
3) BeanFactory和ApplicationContext的区别:
BeanFactory :是在getBean的时候才会生成类的实例.
ApplicationContext :在加载applicationContext.xml时候就会创建.
Spring的相关配置
1)id属性和name属性标签的配置
id:Bean起个名字.在约束中采用ID的约束:唯一.必须以字母开始,可以使用字母、数字、连字符、下划线、句话、冒。id不能出现特殊字符.
<bean id=”bookAction”>
name:Bean起个名字.没有采用ID的约束.name:出现特殊字符.如果<bean>没有id的话 , name可以当做id使用.
* 整合struts1的时候:
<bean name=”/loginAction” >
2)scope属性:Bean的作用范围.
* singleton :默认值,单例的.
* prototype:多例的.
* request:WEB项目中,Spring创建一个Bean的对象,将对象存入到request域中.
* session:WEB项目中,Spring创建一个Bean的对象,将对象存入到session域中.
* globalSession:WEB项目中,应用在Porlet环境.如果没有Porlet环境那么globalSession相当于session.
3)Bean的生命周期的配置
通过配置<bean>标签上的init-method作为Bean的初始化的时候执行的方法,配置destroy-method作为Bean的销毁的时候执行的方法。销毁方法想要执行,需要是单例创建的Bean而且在工厂关闭的时候,Bean才会被销毁.
Spring的Bean的管理XML的方式
复杂类型的注入
Spring的分配置文件的开发
一种:创建工厂的时候加载多个配置文件:
ApplicationContext applicationContext = newClassPathXmlApplicationContext("applicationContext.xml","applicationContext2.xml");
二种:在一个配置文件中包含另一个配置文件:
<importresource="applicationContext2.xml"></import>
【原文】https://www.toutiao.com/i6575006422340207108/
【转】Spring学习---Spring 学习总结的更多相关文章
- 学习Spring——依赖注入
前言: 又开始动笔开了“学习Spring”系列的头…… 其实一开始写“学习SpringMVC”的几篇文章是出于想系统的了解下Spring以及SpringMVC,因为平时在公司中虽然每天都在使用Spri ...
- spring HttpInvoker相关学习资料
官方文档 spring支持的几种RPC 用Http Invoker实现RCP客户端与后台的交互 Java HttpInvoker小试 Spring注解发布RMI/HTTPInvoker/Hessian ...
- Spring系列:学习Spring的资源和讨论
1) 阅读<spring in action 4th edition>,这样可以对的spring可以做什么事情有个基本了解: 2) 阅读spring.io官网提供的各种reference, ...
- [原创]java WEB学习笔记109:Spring学习---spring中事物管理
博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好 ...
- Spring 4 官方文档学习 Spring与Java EE技术的集成
本部分覆盖了以下内容: Chapter 28, Remoting and web services using Spring -- 使用Spring进行远程和web服务 Chapter 29, Ent ...
- spring源码学习之路---深入AOP(终)
作者:zuoxiaolong8810(左潇龙),转载请注明出处,特别说明:本博文来自博主原博客,为保证新博客中博文的完整性,特复制到此留存,如需转载请注明新博客地址即可. 上一章和各位一起看了一下sp ...
- spring源码学习之路---AOP初探(六)
作者:zuoxiaolong8810(左潇龙),转载请注明出处,特别说明:本博文来自博主原博客,为保证新博客中博文的完整性,特复制到此留存,如需转载请注明新博客地址即可. 最近工作很忙,但当初打算学习 ...
- spring源码学习之路---IOC初探(二)
作者:zuoxiaolong8810(左潇龙),转载请注明出处,特别说明:本博文来自博主原博客,为保证新博客中博文的完整性,特复制到此留存,如需转载请注明新博客地址即可. 上一章当中我没有提及具体的搭 ...
- 菜鸟学习Spring——60s配置XML方法实现简单AOP
一.概述. 上一篇博客讲述了用注解的形式实现AOP现在讲述另外一种AOP实现的方式利用XML来实现AOP. 二.代码演示. 准备工作参照上一篇博客<菜鸟学习Spring--60s使用annota ...
- spring事务管理学习
spring事务管理学习 spring的事务管理和mysql自己的事务之间的区别 参考很好介绍事务异常回滚的文章 MyBatis+Spring 事务管理 spring中的事务回滚例子 这篇文章讲解了@ ...
随机推荐
- 谈谈Windows Wow64
欢迎转载,转载请注明出处:http://www.cnblogs.com/lanrenxinxin/p/4977488.html 本文是<深入理解Windows操作系统 (第六版) >关于6 ...
- CentOS Basic XLib functionality test failed!
在CentOS上安装个Qt库时,下好源代码之后执行: ./configure检查环境时,出现: Basic XLib functionality test failed! You might need ...
- Oracle存储过程编译卡死的解决方法
转自: https://www.cnblogs.com/liang-ling/p/5395249.html 解决方法如下: 1:查V$DB_OBJECT_CACHE SELECT * FROM V$D ...
- niftynet Demo分析 -- brain_parcellation
brain_parcellation 论文详细介绍 通过从脑部MR图像中分割155个神经结构来验证该网络学习3D表示的效率 目标:设计一个高分辨率和紧凑的网络架构来分割体积图像中的精细结构 特点:大多 ...
- 并发编程之 CAS 的原理
前言 在并发编程中,锁是消耗性能的操作,同一时间只能有一个线程进入同步块修改变量的值,比如下面的代码 synchronized void function(int b){ a = a + b: } 如 ...
- thinkphp 百度编辑器和layer简单用法
百度编辑器1.4.3.3和layer插件简单案例 :后台单页面管理 增删改查操作 此处为默认图片保存路径,如果要修改保存路径,需要修改config文件. 添加页. <extend name=&q ...
- 【游记】Noip2018
Day -1 Noip还有1天,加油!!! 今天上午就肝一肝树形DP,维护一些玄学差分,和前缀数组什么的吧 下午以及晚上搞一搞记忆化搜索和最朴素的DFS这样子吧. 还要打一打板子也是极有必要的qwq ...
- 【转】classpath和环境变量设置
http://www.360doc.com/content/12/0722/14/820209_225797366.shtml 在没有设置环境变量之前,我们可以通过直接在应用程序中加带相关信息来运行我 ...
- Eclipse自动编码提示设置
1.window->Preferences->Java->Editor->content assist 输入 .abcdefghijklmnopqrstuvwxyz,然后 OK ...
- VM虚拟机克隆_修改网络
1.如果网络中没有VMware的网卡,记得重置即可 2.如果右上角没有了网络图标,直接 server NetworkManager restart 3.网络配置 1)在/etc/sysconfig/n ...