一。spring体系结构
spring核心组件
1.Beans(包装应用程序自定义对象Object,Object中存有数据)
2.Core (资源加载,资源抽象,建立维护与bean之间的一些关系所需的一些工具)
3.Context (一个bean关系的集合)
4.Expression Language
Spring设计理念
1.spring是面向Bean的编程
2.spring两大核心技术 1.控制反转 2.面向切面编程
3.spring优点
低侵入设计
独立于各种应用服务器
依赖注入特性将组件关系透明化,降低了耦合度
面向切面编程特性允许将通用任务进行集中式处理
与第三方宽假的良好整合

二。spring IOC(Inversion of Control)
定义和原理:
理解一:将控制组件的控制权从代码本身转移到外部容器(Spring容器)

组件化的思想:分离关注点,使用接口,不再关注实现
依赖注入:将组件的构建和使用分开
目的:解耦和,实现每个组件只关注组件内部的事情
要点:明确定的接口
IOC的好处:解耦和 利于程序扩展
IOC:思想控制反转
DI:实现层面,依赖注入
applicontionContext.xml 容器
spring配置文件
<bean id="hellSpring" class="cn.springdemo.HellSpring">
//指定被赋值属性名
<property name="who">
<!--赋值内容-->
<value>Spring</value>
</property>
</bean>

AOP定义和原理(Aspact Oriented Programming)面向切面编程
目标:让我们可以专心做事 日志记录 事务处理 异常扑获

原理:
1.将复杂的需求分解出不同方面,将公共功能集中解决
2.采用代理机制组装起来运行,在不改变源程序的基础上对代码段进行增强处理,增加新的功能。
所谓面向切面编程,是一种通过预编译方式和运行期动态代理实现在不修改源码的情况下给程序动态添加功能的技术。
bean的作用域
Struts2: Action类多例的。 Struts1 Action是单例的
S2: Servlet 单例的 xxx_jsp.java 底层也是通过单例多线程来处理客户端请求的
JSP:单例的 xxx.jsp
scope="prototype" 原型模式(N个对象):真正使用时才会创建,每获取一次,都会创建不同对象
scope="singleton" 单例模式:容器初始化时需要使用name建,每次获取的都是同一个对象,默认值
三。AOP相关术语
增强处理(advice)
前至增强
后置增强
环绕增强。异常抛出增强,最终增强
切入点(pointcut)
连接点(Join Point)
切面(Aspect)
目标对象(Target object)
aop代理(AOP proxy)
织入(Weaving)

前置增强接口 MethodBeforeAdvice
后置增强接口 AfterReturningAdvice

6.BeanFactory 使用对象的时候创建,这是和ApplicationContext的区别
Resource resource=new ClassPathResource("applicationContext.xml");
BeanFactory ctx=new XmlBeanFactory(resource);
获取到上下文,并没有初始化bean,等待使用bean的时候才初始化
ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml");

所有的bean已经初始化了

http://www.yesky.com/imagesnew/software/spring/beans.html

7.代码通过getBean()方法从容器获取指定的bean实例,容器首先会调用Bean类的无参构造器,创建实例对象

Spring初学的更多相关文章

  1. Spring 初学笔记

    Spring 初学笔记: https://blog.csdn.net/weixin_35909255/article/category/7470388

  2. Spring初学之spring的事务管理xml

    所有的java类都是用的上一篇文章:Spring初学之spring的事务管理 不同的是,这时xml配置事务,所以就要把java类中的那些关于spring的注解都删掉,然后在xml中配置,Applica ...

  3. Spring 初学 1

    Spring是一个轻量级的框架,他有自己的MVC框架SpringMVC,在以往的Web项目中大多采用Structs2+hibernate+Spring的框架,Structs做web层,Hibernat ...

  4. Spring初学(一)

    Spring核心机制:依赖注入 依赖注入简单的理解就是 由Spring负责对model进行设置,而非由controller直接设置. 通过依赖注入,javaEE各种组件可以解耦. 依赖注入(Depen ...

  5. spring初学总结思路

    spring初步学习总结 总概括有四个方面:IOC,AOP,JDBC,和事务管理 ioc:实现了new类的一个权力的反转.(平时new类导致代码冗余,手动new类无法满足动态new类的需求) aop: ...

  6. Spring初学之spring的事务管理注解

    spring的事务管理,本文的例子是:比如你需要网购一本书,卖书的那一方有库存量以及书的价格,你有账户余额.回想我们在编程中要实现买书这样的功能,由于你的账户表和书的库存量表肯定不是同一张数据库表,所 ...

  7. Spring初学之使用JdbcTemplate

    Spring中使用JdbcTemplate.JdbcDaoSupport和NamedParameterJdbcTemplate来操作数据库,但是JdbcTemplate最常用,最易用. jdbc.pr ...

  8. Spring初学之xml实现AOP前置通知、后置通知、返回通知、异常通知等

    实现两个整数的加减乘除,在每个方法执行前后打印日志. ArithmeticCalculator.java: package spring.aop.impl.xml; public interface ...

  9. Spring初学之annotation实现AOP前置通知、后置通知、返回通知、异常通知。

    实现两个整数的加减乘除.在执行每个方法之前打印日志. ArithmeticCalculator.java: package spring.aop.impl; public interface Arit ...

随机推荐

  1. Vulkan Tutorial 12 Fixed functions

    操作系统:Windows8.1 显卡:Nivida GTX965M 开发工具:Visual Studio 2017 早起的图形API在图形渲染管线的许多阶段提供了默认的状态.在Vulkan中,从vie ...

  2. node.js入门系列(一)--Node.js简介

    什么是NodeJS JS是脚本语言,脚本语言都需要一个解析器才能运行.对于写在HTML页面里的JS,浏览器充当了解析器的角色.而对于需要独立运行的JS,NodeJS就是一个解析器. 每一种解析器都是一 ...

  3. DDD理论学习系列(6)-- 实体

    DDD理论学习系列--案例及目录 1.引言 实体对应的英语单词为Entity.提到实体,你可能立马就想到了代码中定义的实体类.在使用一些ORM框架时,比如Entity Framework,实体作为直接 ...

  4. NLTK学习笔记(八):文法--词关系研究的工具

    [TOC] 对于一门语言来说,一句话有无限可能.问题是我们只能通过有限的程序来分析结构和含义.尝试将"语言"理解为:仅仅是所有合乎文法的句子的大集合.在这个思路的基础上,类似于 w ...

  5. Codewars练习笔记·1 - 6.23

    Codewars地址:https://www.codewars.com/ 笔记资料来源:JavaScript高级程序设计. 欢迎和大家一起来讨论~   基础练习(1):   我的解答为: class ...

  6. Rest模式get,put,post,delete含义与区别(转)

    POST   /uri     创建 DELETE /uri/xxx 删除 PUT    /uri/xxx 更新或创建 GET    /uri/xxx 查看 GET操作是安全的.所谓安全是指不管进行多 ...

  7. HTTP协议 状态码 telnet 笔记分享

    最近计算机网络课讲到这个,实习的笔试也考到了,做笔记总结一下.

  8. Python进阶 - 命名空间与作用域

    Python进阶 - 命名空间与作用域 写在前面 如非特别说明,下文均基于Python3 命名空间与作用于跟名字的绑定相关性很大,可以结合另一篇介绍Python名字.对象及其绑定的文章. 1. 命名空 ...

  9. 仿淘宝,京东红包雨(基于Phaser框架)

    本红包雨项目是基于HTML5的游戏框架Phaser写的,最终形成的是一个canvas,所以性能很好,但是必须要说的是这个框架比较大,压缩后也有700K左右,所以请慎用. 代码地址: https://g ...

  10. 【Android Developers Training】 13. 支持不同平台版本

    注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...