Spring初学
一。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初学的更多相关文章
- Spring 初学笔记
Spring 初学笔记: https://blog.csdn.net/weixin_35909255/article/category/7470388
- Spring初学之spring的事务管理xml
所有的java类都是用的上一篇文章:Spring初学之spring的事务管理 不同的是,这时xml配置事务,所以就要把java类中的那些关于spring的注解都删掉,然后在xml中配置,Applica ...
- Spring 初学 1
Spring是一个轻量级的框架,他有自己的MVC框架SpringMVC,在以往的Web项目中大多采用Structs2+hibernate+Spring的框架,Structs做web层,Hibernat ...
- Spring初学(一)
Spring核心机制:依赖注入 依赖注入简单的理解就是 由Spring负责对model进行设置,而非由controller直接设置. 通过依赖注入,javaEE各种组件可以解耦. 依赖注入(Depen ...
- spring初学总结思路
spring初步学习总结 总概括有四个方面:IOC,AOP,JDBC,和事务管理 ioc:实现了new类的一个权力的反转.(平时new类导致代码冗余,手动new类无法满足动态new类的需求) aop: ...
- Spring初学之spring的事务管理注解
spring的事务管理,本文的例子是:比如你需要网购一本书,卖书的那一方有库存量以及书的价格,你有账户余额.回想我们在编程中要实现买书这样的功能,由于你的账户表和书的库存量表肯定不是同一张数据库表,所 ...
- Spring初学之使用JdbcTemplate
Spring中使用JdbcTemplate.JdbcDaoSupport和NamedParameterJdbcTemplate来操作数据库,但是JdbcTemplate最常用,最易用. jdbc.pr ...
- Spring初学之xml实现AOP前置通知、后置通知、返回通知、异常通知等
实现两个整数的加减乘除,在每个方法执行前后打印日志. ArithmeticCalculator.java: package spring.aop.impl.xml; public interface ...
- Spring初学之annotation实现AOP前置通知、后置通知、返回通知、异常通知。
实现两个整数的加减乘除.在执行每个方法之前打印日志. ArithmeticCalculator.java: package spring.aop.impl; public interface Arit ...
随机推荐
- PHP实现无限级分类
前段时间做一个小项目的时候用到了无限级分类,当时也忘的差不多了,于是就去网上查资料学,下面是我的学习笔记 数据格式: array (size=5) 1 => array (size=6) 'id ...
- oracle 11g 完全卸载方法
网上好多卸载教程都前篇一律,但很多卸完重装都有问题,卸了几次装了几次,就特地总结整理一下 另外说一句:在完全删除(或者叫卸载)oracle时,没有必要特别意oracle提示问题,只要把oracle痕迹 ...
- javascript中 __proto__与prorotype的理解
我们先看看这样一段代码: <script type="text/javascript"> var Person = function () { }; var p = n ...
- 获取当前 系统时间 + 获取当前URL 键值;
一://系统当前时间 function show(){ var mydate = new Date(); var str = "" + mydate.getFullYear() + ...
- dubbo与zookeeper的关系
Dubbo建议使用Zookeeper作为服务的注册中心. 1. Zookeeper的作用: zookeeper用来注册服务和进行负载均衡,哪一个服务由哪一个机器来提供必需让调用者知道,简单来说就是 ...
- 映射语句之INSERT语句
1.一个 INSERT SQL 语句可以在<insert>元素在映射器 XML 配置文件中配置 例子: <insert id="insertStudentWithId&qu ...
- Windows 10环境安装VIM代码补全插件YouCompleteMe
Windows 10环境安装VIM代码补全插件YouCompleteMe 折腾一周也没搞定Windows下安装VIM代码补全插件YouCompleteMe,今天在家折腾一天总算搞定了.关键问题是在于P ...
- java http请求,字节流获取百度数据
请求的地址为: http://api.map.baidu.com/place/v2/search?&q=%E9%A5%AD%E5%BA%97®ion=%E9%87%8D%E5%B ...
- 【T-SQL进阶】03.执行计划之旅-1
到大牛们说执行计划,总是很惶恐,是对知识的缺乏的惶恐,所以必须得学习执行计划,以减少对这一块知识的惶恐,下面是对执行计划的第一讲-理解执行计划. 本系列[T-SQL]主要是针对T-SQL的总结. T- ...
- cmake的安装和卸载
cmake介绍: CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程).他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性 ...