spring学习笔记(一) Spring概述
博主Spring学习笔记整理大部分内容来自Spring实战(第四版)这本书. 强烈建议新手购入或者需要电子书的留言.
在学习Spring之前,我们要了解这么几个问题:什么是Spring?Spring的优势在哪里?怎么系统的学习Spring?
一.什么是Spring?
Spring是一个开源的轻量级Java SE(Java 标准版本)/Java EE(Java 企业版本)开发应用框架,其目的是用于简化企业级应用程序开发。
那有人就会问了,Spring是如何简化开发的?
在传统开发中,一个应用是需要用到很多很多的对象去协作完成的,所以除了业务逻辑的编写,我们更多的是需要去关注如何使用这些对象在低耦合的情况下去完成这些逻辑的相互协作.但是问题来了,传统开发中我们用到一个方法,都要先new这个对象,然后去调用这个方法,这样就大大的增加了对象之间的耦合性. 一个对象的的错误可能导致整个功能或者大模块的瘫痪.但是Spring祛除了这点,他把创建对象的的权利教给了容器(Spring容器),大大的降低了对象之间的依赖. 举例: 十几年前我们去买饮料需要把钱给店员,然后他那给我们,如果店员人不在,我们自己去拿饮料就是犯法.现在不同了,有了自动售货机,我们不用经过店员这一步了,Spring一方面的优势就是不用去new对象了.
二.Spring的优势在哪里?
简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
- 轻量——从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。
- 控制反转——Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。
- 面向切面——Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务()管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。
- 容器——Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。
- 框架——Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。
三.怎么系统的学习Spring?
看书写笔记比什么都好,不要通过网上一块一块的学,很容易乱的.最好的方法是:一本书,一个本,一个成型的SSM项目.
下面进入正题,跟着博主学Spring.
Spring学习分为四部分.
第一部分: Spring的核心: 会介绍DI(依赖注入),AOP(切面编程),DI的三种装配方式(基于XML,装配,基于java装配,自动装配,),几种高级装配,
第二部分:利用Spring来构建一个Web应用程序. SpringMVC(Spring的Web基础框架)基础知识 .
- 介绍如何编写控制器来处理请求,并使用模型数据产生响应.
- 控制器的工作完成后,模型数据必须用一个视图进行渲染,会详细介绍Spring中可以使用的各种视图技术:JSP,Apache Tiles 以及Thymeleaf.
- 之后会讲解如何使用Spring MVC配置,处理multipart;类型的文件上传,处理在控制器中可能出现的异常并且会通过flash属性在请求之间传递数据.
- 介绍Spring MVC的扩展Spring Web Flow 是一个能够开发会话式的Web应用程序.
- 学习如何使用Spring Security为自己的应用程序Web层实现安全性.
第三部分:如何处理和持久化数据
- 介绍Spring对JDBC的抽象实现关系型数据库中的数据持久化.
- 使用JAVA持久化(JPA)存储关系数据库中的数据.
- 介绍Spring与非关系型数据库的结合使用,如MongoDB和Neo4J
- 介绍Spring对声明式缓存额支持.
- 介绍如何通过AOP将安全性应用到方法级别.
第四本分介绍Spring应用程序与其他系统进行集成.
- 学习如何创建与使用远程服务,包括RMI,Hessian,Buriap以及基于SOAP的服务.
- 学习如何创建RESTful服务
- 介绍对Spring对异步消息的支持,包括JAVA消息服务(JAVA Message Service,JMS)以及高级消息队列协议(Advanced Message Queuing Protocol,AMQP)
- 如何使用Spring发送Email
- Spring对JAVA的管理拓展(JMX)功能的支持,借助这个功能可以对Spring应用程序进行监控和修改运行配置.
- 介绍Spring Boot 去除样板式配置.
spring学习笔记(一) Spring概述的更多相关文章
- Java架构师之路 Spring学习笔记(一) Spring介绍
前言 这是一篇原创的Spring学习笔记.主要记录我学习Spring4.0的过程.本人有四年的Java Web开发经验,最近在面试中遇到面试官总会问一些简单但我不会的Java问题,让我觉得有必要重新审 ...
- Spring 学习笔记(2) Spring Bean
一.IoC 容器 IoC 容器是 Spring 的核心,Spring 通过 IoC 容器来管理对象的实例化和初始化(这些对象就是 Spring Bean),以及对象从创建到销毁的整个生命周期.也就是管 ...
- Spring学习笔记之Spring概述
概述 Spring是一个java应用最广的开源框架,它是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Deve ...
- Spring学习笔记:Spring概述,第一个IoC依赖注入案例
一.Spring的优点 企业及系统: 1.大规模:用户数量多.数据规模大.功能众多 2.性能和安全要求高 3.业务复杂 4.灵活应变 Java技术:高入侵式依赖EJB技术框架-->Spring框 ...
- [Spring学习笔记 7 ] Spring中的数据库支持 RowMapper,JdbcDaoSupport 和 事务处理Transaction
1.Spring中的数据库支持 把具有相同功能的代码模板抽取到一个工具类中.2.关于jdbc template的应用 jdbcTemplate模板操作类,把访问jdbc的模板抽取到template中, ...
- [Spring学习笔记 1 ] Spring 简介,初步知识--Ioc容器详解 基本原理。
一.Spring Ioc容器详解(1) 20131105 1.一切都是Bean Bean可是一个字符串或者是数字,一般是一些业务组件. 粒度一般比较粗. 2.Bean的名称 xml配置文件中,id属性 ...
- Spring学习笔记之五----Spring MVC
Spring MVC通常的执行流程是:当一个Web请求被发送给Spring MVC Application,Dispatcher Servlet接收到这个请求,通过HandlerMapping找到Co ...
- Spring学习笔记之 Spring IOC容器(二) 之注入参数值,自动组件扫描方式,控制Bean实例化方式,使用注解方式
本节主要内容: 1. 给MessageBean注入参数值 2. 测试Spring自动组件扫描方式 3. 如何控制ExampleBean实例化方式 4. 使用注解方式重构Jdb ...
- Spring学习笔记之 Spring IOC容器(一)之 实例化容器,创建JavaBean对象,控制Bean实例化,setter方式注入,依赖属性的注入,自动装配功能实现自动属性注入
本节主要内容: 1.实例化Spring容器示例 2.利用Spring容器创建JavaBean对象 3.如何控制Bean实例化 4.利用Spring实现bean属性sett ...
随机推荐
- MySQL中变量的总结
本文对MySQL中局部变量.用户变量.系统变量的理解进行总结. 一.局部变量 局部变量由DECLARE语句声明: DECLARE var_name[,...] type [DEFAULT value] ...
- ASP.NET没有魔法——ASP.NET MVC 路由的匹配与处理
ASP.NET MVC的路由是MVC应用的一个核心也是MVC应用处理的入口,作为一个开发者,在正常情况下仅仅需要做的就是根据需求去定义实体.业务逻辑,然后在MVC的Controller中去调用.Vie ...
- Hadoop(七)HDFS容错机制详解
前言 HDFS(Hadoop Distributed File System)是一个分布式文件系统.它具有高容错性并提供了高吞吐量的数据访问,非常适合大规模数据集上的应用,它提供了一个高度容错性和高吞 ...
- win10 uwp 进度条 WaveProgressControl
昨天看到了有个大神做出好看的进度条样式,于是我就去抄袭他的代码,但是发现看不懂,于是本文主要翻译就是大神说这个控件如何做. 本文翻译 https://stackoverflow.com/a/46057 ...
- win10 UWP 标题栏后退
设置里,标题栏有后退按钮 在win平板,可以有后退键,手机也有 pc可以在标题栏 在OnLaunched //最后 Windows.UI.Core.SystemNavigationManager.Ge ...
- UVa1630,Folding
区间dp,记忆化搜就可以 st为原串 dp[p][q]存st[p]~st[q]的最优长度,f[p][q]存对应的最优串 从(0,len-1)开始搜,f[0][len-1]为所求ans,回溯条件为p== ...
- Maven 开发hibernate存在的诸多问题
项目结构: 开发平台: maven version 3.5 eclipse 4. 7 oxyen 最新:hibernate 5.x 引入问题 官网提供的必需选择只有 这个 当然还需要我们单独配置mys ...
- Centos 7.3 安装配置 PostgreSQL 9.x
一.安装 PostgresSQL Centos 7 自带的 PostgresSQL 是 9.2 版的.因为,yum 已经做了国内源,速度飞快,所以直接就用 yum 安装了.依次执行以下命令即可,非常简 ...
- Express+Mongoose(MongoDB)+Vue2全栈微信商城项目全记录
最近用vue2做了一个微信商城项目,因为做的比较仓促,所以一边写一下整个流程,一边稍做优化. 项目github地址:https://github.com/seven9115/vue-fullstack ...
- 数据库.MongoDB.安装MongoDB数据库
树莓派安装方法 版本: mongodb 2.4.10 sudo apt-get install mongodb -y 安装完成后,检查命令 mongo 看到下图的内容,表示已安装并启动成功 ===== ...