spring入门笔记

记录:

一。程序耦合

以下体现了程序耦合:

1.注册驱动

2.获取链接

3.获取操作数据库的预处理对象

4.执行sql,得到数据集

5.遍历结果集

6.释放资源

 

二。IOC

工厂模式为读取配置文件,(id-name)通过文件 用反射获取对象,存入容器map。—>spring完成。

1.  三种ApplicationContext:ClassPathXmlApplicationContext和FileSystemXmlApplicationContext以及AnnotationXmlApplicationContext

2.

ApplicationContext: 单例对象适用

构建核心容器时,创建对象的策略是采用立即加载的方式。读完配置文件马上就加载文件中的对象。

BeanFactory: 多例对象适用

延迟加载,根据ID获取对象时创建对象。 

BeanFactory位于最顶层,功能较少,一般都用applicationcontext。

3.Spring对bean的管理细节:

1)创建bean的三种方式

A。使用默认构造方式实现。 配置文件bean标签,id class,类中若无默认构造函数则对象无法创建。

B。使用工厂中的普通方法创建对象(使用某个类中的方法创建对象,并存入spring容器)。

C。使用工厂中的静态方法创建对象(使用某个类中的静态方法创建对象,并存入spring容器)。

 

2)bean对象的作用范围

 

3)bean对象的生命周期

  单例:close();多例:垃圾回收

使用

 

 

三。spring的依赖注入DI

 

注入方式:

1.构造函数注入

 

 

缺点在于改变了bean对象的实例化方式,创建对象时用不到某些数据也必须提供。

2.set方法注入  更常用

 

集合数据注入

 

 

 

main()

 

 

 

三:基于注解的IOC

1.注解分为四类。

 

 

1)

 

 

2)Autowired多个类型匹配时先按照类型匹配,再按照变量名匹配,都不匹配则报错

 

 

 

 

3)

 

 

4)

 

 

案例一:基于XML

 

注意:QueryRunner scope = “prototype”配置为多例对象,避免不同dao使用时出现线程异常。

 

案例二:基于注解

 

 

 

2.Spring中的新注解

用.java替换xml文件

 

 

p.42

 

执行

 

 

3.集合junit单元测试。

 

 

 

 

四。Spring的AOP

自己实现

(一)

1.事务控制

 

ConnectionUtils.java

 

 

2.动态代理

动态代理是对一些已经写好的方法,在不需要修改源码的基础上进行增强。

与继承的区别:https://blog.csdn.net/qq_32101859/article/details/50733543

动态代理:不用手动编写一个代理对象,不需要一一编写与目标对象相同的方法,这个过程,在运行时的内存中动态生成代理对象。------字节码对象级别的代理对象

如果写一个子类的话,需要重写父类方法中的所有代码,而使用代理的话,代理者只需修改该方法中的部分代码即可。

1)基于接口的动态代理(必须实现接口

 

 

proxyProducer.saleProduct(10000f);

 

2)基于子类的动态代理,(第三方jar包cglib,被代理类不能是最终类

 

 

执行被代理对象的任何方法都会经过intercept方法,前三个参数和invoke是一样的

 

3.动态代理实现事务控制:

创建service的代理对象

 

 

 

 

(二)

1.spring中的AOP

 

 

spring的一些术语

连接点是指(service业务层——被代理类的)方法;所有的切入点都是连接点,切入点是被增强的连接点。

 

 

通知的类型

 

 

使用aop开发过程:

 

 

2.XML配置AOP

 

 

Spring自动生成代理类来增强。

切入表达式通配写法:

 

 

 

xml配置

 

 

手动.java注解配置

 

 

3.基于注解配置通知。有顺序问题!

 

 

 

五。Spring的事务控制

1.

 

 

2.基于xml的声明式事务配置

 

 

 

 

3.基于注解的…

 

 

 

 

SpringMVC

 

 

 

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/418313.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

struts2.0标签库

用过struts1.x的人都知道&#xff0c;标签库有html、bean、logic、tiles&#xff0c;而struts2.0里的标签却没有分类&#xff0c;只用在jsp头文件加上<% taglib prefix"s" uri"/struts-tags" %>就能使用struts2.0的标签库 下面就介绍下每个标签的用法…

前端学习(2007)vue之电商管理系统电商系统之优化复选框的样式

目录结构 router.js import Vue from vue import Router from vue-router import Login from ./components/Login.vue import Home from ./components/Home.vue import Welcome from ./components/Welcome.vue import Users from ./components/user/Users.vue import Right fr…

MapReduce改造fp-growth算法

1. FP-Growth算法弊端 FP-Growth算法是挖掘频繁项集最常用的算法之一&#xff0c;其是基于迭代FP-Tree生成频繁项集的关联规则算法。此算法仅进行两次数据集扫描&#xff0c;递归迭代构建FP-Tree(FP条件树)&#xff0c;当FP-Tree中只有一个单分支时&#xff0c;递归迭代构建结…

《一线架构师实践指南》—— 读后总结

之前总觉得架构是一件很高大上的工作&#xff0c;跟普通的编码设计不太一样。前一段实践&#xff0c;自己也尝试做过架构的工作&#xff0c;可惜经验不足导致架构非常混乱。这里读完这本书&#xff0c;大体上对架构的工作有所了解&#xff0c;也稍微摸清了些门道。 我理解的架构…

随机排列实现 -shuffle算法

随机排列实现 -shuffle算法 洗牌算法&#xff08;shuffle&#xff09;&#xff1a;原理是&#xff0c;一个数A&#xff0c;随机选一个在这个数A之前的下标&#xff0c;将这个下标对应数字与A对换&#xff1b;之后不再考虑最后的这一个数&#xff1b; 类似于无放回的抽签问题&…

前端学习(2008)vue之电商管理系统电商系统之获取静态属性列表

目录结构 router.js import Vue from vue import Router from vue-router import Login from ./components/Login.vue import Home from ./components/Home.vue import Welcome from ./components/Welcome.vue import Users from ./components/user/Users.vue import Right fr…

转载_递归树求递归算法的时间复杂度

递归算法时间复杂度的计算方程式一个递归方程&#xff1a; 在引入递归树之前可以考虑一个例子&#xff1a; T(n) 2T(n/2) n2 迭代2次可以得&#xff1a; T(n) n2 2(2T(n/4) (n/2) 2) 还可以继续迭代&#xff0c;将其完全展开可得&#xff1a; T(n) n2 2((n/2) 2 2((n/2…

[转]Eclipse Java注释模板设置详解

原文链接&#xff1a;http://blog.csdn.net/ahhsxy/archive/2009/09/11/4542682.aspx 设置注释模板的入口&#xff1a; Window->Preference->Java->Code Style->Code Template 然后展开Comments节点就是所有需设置注释的元素啦。现就每一个元素逐一介绍&#xff1a…

前端学习(2011)vue之电商管理系统电商系统之初步使用upload上传组件

目录结构 router.js import Vue from vue import Router from vue-router import Login from ./components/Login.vue import Home from ./components/Home.vue import Welcome from ./components/Welcome.vue import Users from ./components/user/Users.vue import Right fr…

为什么使用Deque而不使用Stack构造栈

为什么使用Deque而不使用Stack构造栈 Class Stack<E> java.lang.Object java.util.AbstractCollection<E> java.util.AbstractList<E> java.util.Vector<E> java.util.Stack<E> 实现的所有接口 Serializable &#xff0c; Cloneable &#xff…

DDD学习笔记一

由于也是初学DDD&#xff0c;难免有很多不足和认识错误的地方。多数内容来自其他网络资料或者书籍。 参考&#xff1a;http://www.cnblogs.com/Leo_wl/p/4418663.html 希望多多提出宝贵意见&#xff0c;谢谢&#xff01;&#xff01;&#xff01; DDD是一套强大的思想工具&…

前端学习(2012)vue之电商管理系统电商系统之手动为upload组件添加请求头

目录结构 router.js import Vue from vue import Router from vue-router import Login from ./components/Login.vue import Home from ./components/Home.vue import Welcome from ./components/Welcome.vue import Users from ./components/user/Users.vue import Right fr…

Shell入门教程:算术运算

Bash的算术运算有以下几种方法&#xff1a; 序号名称语法范例1算术扩展$((算术式))r$((25*8))2使用外部程序expr 算术式rexpr 4 53使用 $[]$[算术式]r$[45]4使用内置命令 declaredeclare -i 变量算式式declare -i r8165使用内置命令 letlet 算术式let r816第一节&#xff1a;算…

计算器、中文转数字

计算器 1.字符串转整数 string s "458";int n 0; for (int i 0; i < s.size(); i) {char c s[i];n 10 * n (c - 0); } // n 现在就等于 458 2.处理加减法 我们拿字符串算式1-123为例&#xff0c;来说一个很简单的思路&#xff1a; 1、先给第一个数字加…

前端学习(2009)vue之电商管理系统电商系统之渲染商品属性的结构

目录结构 router.js import Vue from vue import Router from vue-router import Login from ./components/Login.vue import Home from ./components/Home.vue import Welcome from ./components/Welcome.vue import Users from ./components/user/Users.vue import Right fr…

配置CNPM-基础案例

下面给出一个样例配置&#xff1a; JavaScript module.exports { enableCluster: true, database: { db: "snpm", username: "username", password: "password", dialect: "mysql", host: "127.0.0.1", port: 3306 }, en…

浏览器上请求URL的全部过程

分为六步 1. 域名解析   浏览器首先要做去获得想访问网页的IP地址&#xff0c;浏览器会发送一个UDP的包给DNS域名解析服务器。DNS就会返回给我们百度的IP地址&#xff0c;通常来说浏览器会把访问过的网站的IP保存下来&#xff0c;这样下次访问的时候就会快很多&#xff0c;能…

前端学习(2013)vue之电商管理系统电商系统之监听on-success事件

目录结构 router.js import Vue from vue import Router from vue-router import Login from ./components/Login.vue import Home from ./components/Home.vue import Welcome from ./components/Welcome.vue import Users from ./components/user/Users.vue import Right fr…

常见算法复习整理1

数据结构笔记 1.迭代与递归 递归过程中的递归因子本身可以被忽略&#xff08;被计入它自己的过程中了&#xff09; 递归跟踪、递推方程。递归基 减而治之&#xff1a;Decrease and Conquer 线性递归的模式 T(n) T(n-1) O(1) 分而治之&#xff1a;Divide and Conquer 一般…

MVC5中利用NOPI导出EXCLE

MVC5中利用NOPI导出EXCLE //导出excle 设备效率public JsonResult Exporta(){var jser new JavaScriptSerializer();string js1 Request.Params["rows"].ToString();string js2 Request.Params["columns"].ToString();DataTable dt1 JsonToDataTable.J…