Spring基础知识 利用spring完成松耦合 接口 public interface IOutputGenerator { public void generateOutput(); } 实现类 csv输出 public class CsvOutputGenerator implements IOutputGenerator { public void generateOutput(){ System.out.println("Csv Output Generator"); } }…
Spring架构简单描述 原文:https://www.shiyanlou.com/courses/document/212 Spring 概述 1. Spring 是什么 Spring是一个开源的轻量级Java SE(Java 标准版本)/Java EE(Java 企业版本)开发应用框架,其目的是用于简化企业级应用程序开发.应用程序是由一组相互协作的对象组成.而在传统应用程序开发中,一个完整的应用是由一组相互协作的对象组成.所以开发一个应用除了要开发业务逻辑之外,最多的是关注如何使这些对象协作…
spring是一个分层架构,由 7 个定义良好的模块组成.Spring 模块构建在核心容器之上,核心容器定义了创建.配置和管理 bean 的方式. 组成spring框架的每个模块(或组件)都可单独存在,或者与其他一个或多个模块联合实现. 核心容器:核心容器提供 Spring 框架的基本功能.核心容器的主要组件是 BeanFactory,它是工厂模式的实现.BeanFactory 使用控制反转 (IOC) 模式将应用程序的配置和依赖性规范与实际的应用程序代码分开. Spring 上下文:Sprin…
IOC与DI: IOC(inversion of control):其思想是反转资源获取的方向.传统的资源查找方式要求组件向容器发起请求查找资源.作为回应,容器适时的返回资源.而应用了IOC之后,则是容器主动地将资源推送给它所管理的组件,组件所要做的仅是选择一种合适的方式来接收资源.这种方式也被称为查找的被动形式.DI(dependency injection):IOC的另一种表述形式,即组件以一些预先定义好的方式(例如setter方法)接受来自如容器的资源注入.相对于IOC而言,这种表述更直接…
写在最前面 这个项目是从20年末就立好的 flag,经过几年的学习,回过头再去看很多知识点又有新的理解.所以趁着找实习的准备,结合以前的学习储备,创建一个主要针对应届生和初学者的 Java 开源知识项目,专注 Java 后端面试题 + 解析 + 重点知识详解 + 精选文章的开源项目,希望它能伴随你我一直进步! 说明:此项目我确实有很用心在做,内容全部是我参考了诸多博主(已注明出处),资料,N本书籍,以及结合自己理解,重新绘图,重新组织语言等等所制.个人之力绵薄,或有不足之处,在所难免,但更新/完…
1.Spring 有两个核心部分: IOC 和 Aop (1)IOC:控制反转,把创建对象过程交给 Spring 进行管理   (2)Aop:面向切面,不修改源代码进行功能增强 2.Spring 特点: (1)方便解耦,简化开发 (2)Aop 编程支持 (3)方便程序测试 (4)方便和其他框架进行整合 (5)方便进行事务操作 (6)降低 API 开发难度 3.IOC(控制反转) IOC是什么 IOC:控制反转,也叫依赖注入,他就是不会直接new出对象,是把对象声明出来,在代码中不直接与对象和服务…
DI(依赖注入) 和IOC(控制反转)都是一种设计思想,要理解他们,让我们从coding中的一些痛点入手. 依赖注入 Dependency Injection : 如果A类要使用B类的一个方法,首先必须拥有B类的实例的引用,其次,在调用B类方法时,引用必须被B类的实例赋值,否则空指针.对于面对对象的java语言来说,这一场景,是极具备普遍性,的重复劳动. 所以Spring根据配置(或注解)帮我们把对象A.B.C....构造好,放到容器中,并基于配置的reference关系,帮我们完成大量的赋值操…
Spring 概述 1. 什么是spring? Spring 是个java企业级应用的开源开发框架.Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用.Spring 框架目标是简化Java企业级应用开发,并通过POJO为基础的编程模型促进良好的编程习惯. 2. 使用Spring框架的好处是什么? 轻量:Spring 是轻量的,基本的版本大约2MB. 控制反转:Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们. 面向切面的…
Spring框架的四大原则: 1)使用POJO进行轻量级和最小侵入式的开发. 2)通过依赖注入和基于接口编程实现松耦合. 3)通过AOP和默认习惯进行声明式编程. 4)使用AOP和模板(template)减少模式化代码. 1.1依赖注入: 控制反转(Inversion of Control - IOC)与依赖注入(dependency injection - DI)在Spring环境下是同等的概念. 控制反转是通过依赖注入实现的.所谓的控制反转指的是:容器负责创建对象和维护对象间的依赖关系. 依…
引言:以下记录一些自己在使用时pringle框架时的一些自己心得合成体会时,如有侵权,请联系本博主. 1. spring基本都使用 spring是一个开源的轻量级框架,其目的是用于简化企业级应用程序开发,降低侵入性; spring提供的IOC和AOP功能,可以将组件的耦合度降至最低,便于系统日后的维护和升级. 在spring中,任何的java类和JavaBean都被当成Bean处理,这些Bean通过容器管理和使用. 1.1 最基本的spring的使用 spring容器有BeanFactory和A…
Spring优点: 低侵入式设计,代码的污染极低: 独立于各种应用服务器,基于Spring框架的应用,可以真正实现Write Once,Run Anywhere的承诺: Spring的IoC容器降低了业务对象替换的复杂性,提高了组件之间的解耦 Spring的AOP支持允许将一些通用任务如安全.事务.日志等进行集中式管理,从而提供了更好的复用: Spring的ORM和DAO提供了与第三方持久层框架的良好整合,并简化了底层的数据库访问: pring的高度开放性,并不强制应用完全依赖于Spring,开…
Spring简介 Spring框架由Rod Johnson开发,2004年发布了Spring框架的第一版.Spring是一个从实际开发中抽取出来的框架,因此它完成了大量开发中的通用步骤,留给开发者的仅仅是与特定应用相关的部分,从而大大提高了企业应用的开发效率. Spring总结起来优点如下 低侵入式设计,代码的污染极低 独立于各种应用服务器,基于Spring框架的应用,可以真正实现Write Once,Run Anywhere的承诺 Spring的IoC容器降低了业务对象替换的复杂性,提高了组件…
背景概念: 1)横切关注点:散布在应用中多处的功能称为横切关注点 2)通知(Advice):切面完成的工作.通知定了了切面是什么及何时调用. 5中可以应用的通知: 前置通知(Before):在目标方法被调用前调用通知功能. 后置通知(After):在目标方法完成后调用通知,此时不会关系方法输出什么. 返回通知(After-returning):在目标方法成功执行后调用通知. 异常通知(After-throwing):在目标方法抛出异常后调用通知. 环绕通知(Around):通知包裹了被通知的方法…
所谓的依赖注入是指容器负责创建对象和维护对象间的依赖关系,而不是通过对象本身负责自己的创建和解决自己的依赖. 依赖注入主要目的是为了解耦,体现了一种“组合”的理念. 无论是xml配置.注解配置还是Java配置,都被称为配置元数据,所谓的元数据即描述数据的数据. 声明Bean的注解: @Component组件,没有明确的角色 @Service在业务逻辑层使用 @Repository 在数据访问层使用 @Controller 在展现层使用 注入Bean的注解: @Autowired: spring提…
创建Spring的主要目的是用来替代更加重量级的企业级Java技术,尤其是EJB(Enterprise JavaBean 企业级JavaBean).相对于EJB来说,Spring提供了更加轻量级和简单的编程模型.它增强了简单老式Java对象(Plain Old Java Object, POJO)的功能,使其具备了之前只有EJB和其他企业级Java规范才具有的功能. Spring是为了解决企业级应用开发的复杂性而创建的.为了降低Java开发的复杂性,Spring采取了以下4种关键策略: 基于PO…
一.Spring两大核心内容 1.控制反转IOC/DI:  应用本身不负责对象的创建和维护,对象和依赖对象的创建完全交给容器管理. 2.AOP(面向切面编程):通过预编译的方式,在运行期通过动态代理的方式来实现的一种技术 (1)在项目中使用AOP管理事务,事务的开启,提交,回滚 (2)在项目中管理事务的传播特性. 二.Spring的环境搭建 1.导包:   2.创建Spring的配置文件 ApplicationContext.xml 1 <?xml version="1.0" e…
装配(wiring):创建应用对象之间协作关系的行为.这是依赖注入的本质. Spring配置的可选方案 Spring提供了三种装配机智: 1)在XML中进行显示装配 2)在java中进行显示装配 3)隐式Bean发现机制和自动装配 自动化装配 Spring从两个角度来实现自动化装配: 1)组件扫描(component scanning):Spring会自动发现应用上下文中所创建的bean. 2)自动装配(autowiring):Spring自动满足bean之间的依赖. 创建可被发现的bean 案…
Spring 总结 在Spring框架的发布版本中,共包含了20个不同的模块,可以划分为6类不同的功能. Spring整体架构图 为了降低Java开发的复杂性,Spring采取了以下4种关键策略: 基于POJO的轻量级和最小侵入性编程: 通过依赖注入和面向接口实现松耦合: 基于切面和惯例进行声明式编程: 通过切面和模板减少样板式代码. 依赖注入 DI 创建应用对象之间协作关系的行为通常称为装配(wiring),这也是依赖注入(DI)的本质. 当描述bean如何进行装配时,Spring具有非常大的…
Spring bean 初始化: 参考博文: https://www.cnblogs.com/luyanliang/p/5567164.html 1. 加载xml 文件. 扫描注解 ,形成bean定义对象仓库 2.分析仓库bean 定义对象,主要是分析bean与bean 之间的关系,为实例化做准备 3.通过反射机制实例化类,并进行属性赋值 Spring 初始化: 参考博文:https://www.cnblogs.com/ViviChan/p/4981712.html 在普通的JAVA工程中,我们…
参考博文: http://blog.csdn.net/liangzi_lucky/article/details/52459378 Spring mvc 执行顺序: 过滤器  web.xml 拦截器 Spring.xml handlerExecutionChain 扩展组件 另外可以通过监听器,监听 request.session ApplicationContext 的生命周期.…
https://blog.csdn.net/slow_wakler/article/details/54895508   http://www.runoob.com/design-pattern/chain-of-responsibility-pattern.html   https://www.cnblogs.com/alwayswyy/p/4904448.html?utm_source=tuicool&utm_medium=referral   https://www.cnblogs.com…
1.GNU和GPL    GNU计划(又称革奴计划),是由Richard Stallman(理查德·斯托曼)在1983年9月27日公开发起的自由软件集体协作计划.它的目标是创建一套完全自由的操作系统.GNU也称为自由软件工程项目.    GPL是GNU的通用公共许可证(GNU General Public License,GPL),即“反版权”概念,是GNU协议之一,目的是保护GNU软件可以自由的使用.复制.研究.修改和发布.同时要求软件必须以源代码的形式发布.    GNU系统与Linux内核…
1. Java中OOP的特点? OOP(Object Oriented Programming):面向对象编程.具有封装.继承.多态三大特征. 封装:解决数据安全性问题: 继承:解决代码的重用性问题: 多态:解决程序扩展问题.1.1 封装 封装:隐藏对象的属性和实现细节,仅对外提供可调用.稳定的公共访问方式. 封装优点: 1. 类具有独立性和隔离性,保证类的高内聚: 2. 避免使用非法数据赋值,降低出错可能性,便于维护: 3. 避免类内部实现发生改变时,导致整个程序的改变. 封装实现:对象的属性…
关于@Value注解不能为静态变量赋值的问题 // eg:(xxx.ooo.value=100) 以下这种方式,来自配置文件的属性值无法注入: public class XxxUtils { @Value("${xxx.ooo.value}") private static String value; } 测试结果: value=null 解决方案 // eg:(xxx.ooo.value=100) 以下这种方式,来自配置文件的属性值可以成功注入@Component public cl…
目录: 一.抛砖引玉:探索Spring IoC容器 1.1.Spring IoC容器 1.2.Spring容器扩展机制 二.夯实基础:JavaConfig与常见Annotation 2.1.JavaConfig 2.2.@ComponentScan 2.3.@Import 2.4.@Conditional 2.5.@ConfigurationProperties与@EnableConfigurationProperties 三.削铁如泥:SpringFactoriesLoader详解 四.另一件…
基础知识梳理 - 软件测试 - 概念 基础知识梳理 - 软件测试 - 分类 基础知识梳理 - 软件测试 - 流程 基础知识梳理 - 软件测试 - 用例 基础知识梳理 - 软件测试 - 方法 基础知识梳理 - 软件测试 - 阶段 基础知识梳理 - 软件测试 - 自动 基础知识梳理 - 软件测试 - 探索 基础知识梳理 - 软件测试 - 理解 基础知识梳理 - 软件测试 - 模型…
MongoDB基础知识记录 一.概念: 讲mongdb就必须提一下nosql,因为mongdb是nosql的代表作: NoSQL(Not Only SQL ),意即“不仅仅是SQL” ,指的是非关系型的数据库 .是一项全新的数据库革命性运动,早期就有人提出,发展至2009年趋势越发高涨.NoSQL的拥护者们提倡运用非关系型的数据存储,相对于铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入.  关系型数据库中的表都是存储一些结构化的数据,每条记录的字段的组成都一样,即使不是每条记录都…
MongoDB基础知识记录 一.概念: 讲mongdb就必须提一下nosql,因为mongdb是nosql的代表作: NoSQL(Not Only SQL ),意即“不仅仅是SQL” ,指的是非关系型的数据库 .是一项全新的数据库革命性运动,早期就有人提出,发展至2009年趋势越发高涨.NoSQL的拥护者们提倡运用非关系型的数据存储,相对于铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入.  关系型数据库中的表都是存储一些结构化的数据,每条记录的字段的组成都一样,即使不是每条记录都…
前言:React专注View层,一切皆组件:全部使用ES6语法,最新版本为React16. Redux是专注于状态管理的库,和react解耦:单一状态,单向数据流.[独立团github地址] 一.React基础知识     React基础语法 import React class语法新建组件,render里直接使用 render函数返回值就是输出JSX语法,会把JSX转成js执行     React的View层语法 JS里直接写html Class里要写成className 变量用{ }包裹即可…
依赖注入(DI)与控制反转(IOC)基础知识 一.什么是依赖注入? 依赖注入英文是Dependcy Injection简写DI,依赖注入会将所依赖的对象自动交由目标对象使用,而不是让对象自己去获取. 二.什么是控制反转? 控制反转英文是Inversion of Control简写IOC,控制反转是一种编程思想,是一种设计模式,但它并不属于GOF23种设计模式之一.是为了降低代码之间的耦合度.最常见的方式是依赖注入(DI),还有依赖查找(Dependcy lookup) 三.依赖注入与控制反转是什…