概述
正式开始了解和学习Spring全家桶 ——— 开始工作中的学习生涯
- 前言
- 1. 对自己的时间没有明确的计划,导致没有学习动力
- 2. 对自己的学习方向和起点没有准确的定位
- 3. 对个人能力的判断不准确
- 方案
- 一、开始Spring的学习
- 二、学习计划
- **说了很多无关紧要的话,下面就是重点了:**
- 一、Spring
- 二、 SSM
- 三、SSH
- 四、Spring cloud
- 由于个人能力的局限性,这个学习计划可能并不完善,我会在今后的时间内尽力将这些知识进行掌握,相信随着学习的深入我会有更多的收获的。(目前希望自己能每天都对其中的一个体系进行总结和文章的发布,加油,冲鸭!!!)
- ----------- 分割线 ------------
- [spring概述](http://codepub.cn/2015/06/21/Basic-knowledge-summary-of-Spring/)
- 概述
- Spring的核心机制
- 管理Bean
- Eclipse使用Spring
- 依赖注入
- Spring 涉及的几个概念
前言
经过一段时间的迷茫,我深深的感受到自己学习效率的低下,由于(实习)工作之后的生活个人可支配时间减少,自己又不满足于重复性的工作(虽然依旧在努力接受知识,但是还是无法真切的感受到自己技术上的提升),我发现一些近期的个人问题并立志于改变这种糟糕的现状 :
1. 对自己的时间没有明确的计划,导致没有学习动力
想起来就看看,没有有效利用时间,太过碎片化的学习往往让自己对很多知识都浅尝辄止
2. 对自己的学习方向和起点没有准确的定位
思维太过跳跃,总是想到什么去看什么(兴趣本身并没有错,但要处理完当前的事情,可以先把自己的灵感点记录下来再看),缺少系统学习一项知识的耐心
3. 对个人能力的判断不准确
因为涉及范围广,导致自己总觉得“事无不可为”,其实即使了解了大概的理论和框架,本质上却没有深刻的感悟,非常不利于之后的学习和成长。
而这篇笔记将作为我未来一段时间内的对学习的引导和督促者。
方案
一、开始Spring的学习
为什么从spring入手
在java开发方面,Spring的重要性和影响力是毋庸置疑的,除此之外,不论是初级开发者还是高级架构师,都可以从Spring中学习到很多:后端开发、设计思想、Java基础、设计模式、甚至一些创造灵感,首先、spring是很有潜力的
再就是,spring对于每个接触过Java语法的人是友好的
最后,便是因为个人对Spring的掌握并不扎实,在这个Spring全家桶在Java界大行其道的环境下,这个简直是致命伤,这让我其他方面的知识储备在面试时显得苍白无力。
二、学习计划
说了很多无关紧要的话,下面就是重点了:
我决定将我对spring的学习分为以下几个层次,并对这些模块进行了解使用和原理的简单探索。(计划在每个大章节之后进行原理推测专题的更帖)
一、Spring
- Spring概述(本章节讲解)
- SpringIoc容器
- Spring依赖注入
- Spring自动装配
- Spring基于注解的配置
- Spring框架和AOP
- Spring JDBC框架
- Spring事务管理
- Spring Web MVC
二、 SSM
- Spring MVC
- MyBatis
- 搭建一个简单的SSM项目结构
三、SSH
- struts2
- hibernate
- 搭建一个简单的SSH项目结构
四、Spring cloud
- Spring Boot
- Spring Cloud
由于个人能力的局限性,这个学习计划可能并不完善,我会在今后的时间内尽力将这些知识进行掌握,相信随着学习的深入我会有更多的收获的。(目前希望自己能每天都对其中的一个体系进行总结和文章的发布,加油,冲鸭!!!)
----------- 分割线 ------------
spring概述
概述
Spring 是最受欢迎的企业级 Java 应用程序开发框架,数以百万的来自世界各地的开发人员使用Spring 框架来创建性能好、易于测试、可重用的代码。
Spring 框架是一个开源的 Java 平台,它最初是由 Rod Johnson 编写的,并且于 2003 年 6 月首次在 Apache 2.0 许可下发布。
Spring 是轻量级的框架,其基础版本只有 2 MB 左右的大小。
Spring 框架的核心特性是可以用于开发任何 Java 应用程序,但是在 Java EE 平台上构建 web 应用程序是需要扩展的。 Spring 框架的目标是使 J2EE 开发变得更容易使用,通过启用基于 POJO 编程模型来促进良好的编程实践。
Spring总结起来优点如下:
- 低侵入式设计,代码的污染极低。
- 独立于各种应用服务器,基于Spring框架的应用,可以真正实现Write Once,Run Anywhere的承诺。
- Spring的IoC容器降低了业务对象替换的复杂性,提高了组件之间的解耦。
- Spring的AOP支持允许将一些通用任务如安全、事务、日志等进行集中式管理,从而提供了更好的复用。
- Spring的ORM和DAO提供了与第三方持久层框架的良好整合,并简化了底层的数据库访问。
- Spring的高度开放性,并不强制应用完全依赖于Spring,开发者可自由选用Spring框架的部分或全部。
Spring框架的组成结构图如下所示:
Spring的核心机制
管理Bean
程序主要是通过Spring容器来访问容器中的Bean,ApplicationContext是Spring容器最常用的接口,该接口有如下两个实现类:
- ClassPathXmlApplicationContext: 从类加载路径下搜索配置文件,并根据配置文件来创建Spring容器。
- FileSystemXmlApplicationContext: 从文件系统的相对路径或绝对路径下去搜索配置文件,并根据配置文件来创建Spring容器。
public class BeanTest{
public static void main(String args[]) throws Exception{
ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
Person p = ctx.getBean("person", Person.class);
p.say();
}
}
Eclipse使用Spring
在Eclipse等IDE工具中,用户可以自建User Library,然后把Spring的Jar包都放入其中,当然也可以将Jar包直接放在项目的/WEB-INF/lib目录下,但是如果使用User Library,在项目发布时,需要将用户库所引用的Jar文件随应用一起发布,就是将User Library所使用的Jar复制到/WEB-INF/lib目录下,这是因为对于一个Web应用,Eclipse部署Web应用时不会将用户库的Jar文件复制到/WEB-INF/lib下,需要手动复制。
依赖注入
Spring框架的核心功能有两个:
- Spring容器作为超级大工厂,负责创建、管理所有的Java对象,这些Java对象被称为Bean。
- Spring容器管理容器中Bean之间的依赖关系,Spring使用一种被称为"依赖注入"的方式来管理Bean之间的依赖关系。
使用依赖注入,不仅可以为Bean注入普通的属性值,还可以注入其他Bean的引用。依赖注入是一种优秀的解耦方式,其可以让Bean以配置文件组织在一起,而不是以硬编码的方式耦合在一起。
Spring 涉及的几个概念
依赖注入(DI)
Spring 最认同的技术是控制反转的依赖注入(DI)模式。控制反转(IoC)是一个通用的概念,它可以用许多不同的方式去表达,依赖注入仅仅是控制反转的一个具体的例子。
当编写一个复杂的 Java 应用程序时,应用程序类应该尽可能的独立于其他的 Java 类来增加这些类可重用可能性,当进行单元测试时,可以使它们独立于其他类进行测试。依赖注入(或者有时被称为配线)有助于将这些类粘合在一起,并且在同一时间让它们保持独立。
到底什么是依赖注入?让我们将这两个词分开来看一看。这里将依赖关系部分转化为两个类之间的关联。例如,类 A 依赖于类 B。现在,让我们看一看第二部分,注入。所有这一切都意味着类 B 将通过 IoC 被注入到类 A 中。
依赖注入可以以向构造函数传递参数的方式发生,或者通过使用 setter 方法 post-construction。由于依赖注入是 Spring 框架的核心部分,所以我将在一个单独的章节中利用很好的例子去解释这一概念。
面向方面的程序设计(AOP):
Spring 框架的一个关键组件是面向方面的程序设计(AOP)框架。一个程序中跨越多个点的功能被称为横切关注点,这些横切关注点在概念上独立于应用程序的业务逻辑。有各种各样常见的很好的关于方面的例子,比如日志记录、声明性事务、安全性,和缓存等等。
在 OOP 中模块化的关键单元是类,而在 AOP 中模块化的关键单元是方面。AOP 帮助你将横切关注点从它们所影响的对象中分离出来,然而依赖注入帮助你将你的应用程序对象从彼此中分离出来。
Spring 框架的 AOP 模块提供了面向方面的程序设计实现,可以定义诸如方法拦截器和切入点等,从而使实现功能的代码彻底的解耦出来。使用源码级的元数据,可以用类似于.Net属性的方式合并行为信息到代码中。我将在一个独立的章节中讨论更多关于 Spring AOP 的概念。
参考文章:
https://www.w3cschool.cn/wkspring/pesy1icl.html
https://yaningnaw.github.io/2018/11/02/Spring.html
最后
以上就是拉长钢笔为你收集整理的正式开始了解和学习Spring全家桶 ——— 开始工作中的学习生涯前言方案----------- 分割线 ------------的全部内容,希望文章能够帮你解决正式开始了解和学习Spring全家桶 ——— 开始工作中的学习生涯前言方案----------- 分割线 ------------所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复