itcast-spring
黑马2014 spring后期 ssh整合后期 讲解不清楚 源码讲解太多 spring重新开始 itcast2016版本
介绍



Spring搭建



约束引入注意事项
导入至eclipse:windows-preference-cata-导入 spring-framework-4.2.4.RELEASE-scheme-beans-最新的版本

新建xml文件, <beans>--edit namespace- 添加xsi

添加cata刚才的添加的scheme


Spring 概念
Ioc di


applicationContext&BeanFactory


spring配置详解
bean元素


spring与strut2结合 scope选择多例
bean init-method属性 方法与对应class中的方法对应

factory-method
需要配置2个bean factory-bean属性 factory-method
spring属性注入



index type value 定义参数


基于其他bean的注入






导包 4核心+2日志+1web整合

监听器(设置监听器 指定路径) 让applicationContext 随着servletContext启动而启动, 在servletContext(application)启动时候,创建applicationContext存储在servletContext(application)域中, 因此获得servletContext(application)就能获得applicationContext ,然后getBean
使用注解配置spring

命名空间 前缀需要








spring中的aop



结论概念:动态代理代理对象和目标对象实现了同个接口 cglib代理对象继承了目标对象
手动使用jdk代理 观光代码
package cn.itcast.service;
public interface UserService {
void save();
void delete();
void update();
void find();
}
UserServiceInterface
package cn.itcast.service;
public class UserServiceImpl implements UserService{
public void save() {
System.out.println("save user");
}
public void delete() {
System.out.println("delete user");
}
public void update() {
System.out.println("update user");
}
public void find() {
System.out.println("find user");
}
}
UserServiceImpl
package cn.itcast.c_proxy;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import cn.itcast.service.UserService;
import cn.itcast.service.UserServiceImpl;
public class UserServiceProxyFactory implements InvocationHandler{
private UserService us;
public UserServiceProxyFactory(UserService us) {
super();
this.us = us;
}
public UserService getUserServiceProxy(){
UserService usProxy = (UserService) Proxy.newProxyInstance(UserServiceProxyFactory.class.getClassLoader(), UserServiceImpl.class.getInterfaces(), this);
return usProxy;
}
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
System.out.println("打开事务");
Object invoke = method.invoke(us, args);
System.out.println("关闭事务");
return invoke;
}
}
UseServiceProxyFactory
package cn.itcast.c_proxy; import org.junit.Test; import cn.itcast.service.UserService;
import cn.itcast.service.UserServiceImpl; public class Demo {
@Test
public void fun1(){
UserService us =new UserServiceImpl();
UserServiceProxyFactory userServiceProxyFactory = new UserServiceProxyFactory(us);
UserService userServiceProxy = userServiceProxyFactory.getUserServiceProxy();
userServiceProxy.save();
}
}
Demo
手动使用cglib代理(了解)




环绕通知唯一特殊 控制目标方法的调用 需要参数

把myadvice通知的save方法织入到切点pc中



pointcut注解 可以解决重复execution
spring整合jdbc








省略掉注入jdbcTemplate , jdbcDaoSuport 有set DataSource方法

注意加前缀 可能有关键字冲突
spring 中aop事务






业务方法之间 平行调用 决定业务方法之间调用,事务应该如何处理

1 haha如有有事务,hiahia就直接使用haha的事务 ,同在一个事务中 haha如有没有事务,hiahia就开一个事务 99%的情况(默认)
2. 如有有事务就使用 没有就算了
3.如有有事务就使用 没有就抛异常

编码式了解



相当于spring aop中把通知部分 由原来的 手写通知类 在applicationContext.xml中通过tx:advice配置完成 spring事务效果相当于 spring-aop中的环绕通知


少了个步骤需要导入transactionManager spring中操作事务的核心 依赖DataSource
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"></bean>

事务通知配置事务管理类和事务属性
transaction-manager="transactionManager" 引入Spring事务管理类
name=save 目标方法 isolation="DEFAULT" propagation="REQUIRED" read-only="false" 事务属性



itcast-spring的更多相关文章
- Eclipse/JavaWeb (三)三大框架之Spring框架 持续更新中...
(一)发展历史 现在我们有三个层了,可是每层之间的调用是怎样的呢?比如显示层的struts需要调用一个业务类,就需要new一个业务类出来,然后使用:业务层需要调用持久层的类,也需要new一个持久层类出 ...
- [Java面试五]Spring总结以及在面试中的一些问题.
1.谈谈你对spring IOC和DI的理解,它们有什么区别? IoC Inverse of Control 反转控制的概念,就是将原本在程序中手动创建UserService对象的控制权,交由Spri ...
- [Spring框架]Spring开发实例: XML+注解.
前言: 本文为自己学习Spring记录所用, 文章内容包括Spring的概述已经简单开发, 主要涉及IOC相关知识, 希望能够对新入门Spring的同学有帮助, 也希望大家一起讨论相关的知识. 一. ...
- Spring IoC反转控制的快速入门
* 下载Spring最新开发包 * 复制Spring开发jar包到工程 * 理解IoC反转控制和DI依赖注入 * 编写Spring核心配置文件 * 在程序中读取Spring配置文件,通过Spring框 ...
- 关于Spring的IOC和DI
原始调用模型 Spring的演化过程 Spring的调用过程 ======================================= IoC[理解][应用][重点] 1.IoC(Inversi ...
- Spring第三天
Spring第三天 整体课程安排(3天+2天): 第一天:Spring框架入门.IoC控制反转的配置管理.Spring Web集成.Spring Junit集成. 第二天:Spring AOP面向切面 ...
- Spring第二天
Spring第二天 整体课程安排(3天+2天): 第一天:Spring框架入门.IoC控制反转的配置管理.Spring Web集成.Spring Junit集成. 第二天:Spring AOP面向切面 ...
- [Spring面试] 问题整理
1.谈谈你对spring IOC和DI的理解,它们有什么区别? IoC:Inverse of Control 反转控制的概念,就是将原本在程序中手动创建UserService对象的控制权,交由Spri ...
- 17_8_9 Spring 注入
1 Spring 的 Bean 的属性注入: 构造方法的方式注入属性: <!-- 第一种:构造方法的方式 --> <bean id="car" class=&qu ...
- Spring依赖注入 — util命名空间配置
要使用<util>标签,必须在XML中加入util名称空间(namespace): xmlns:util="http://http://www.springframework.o ...
随机推荐
- python中字典常用的方法
#定义一个空字典: a={ } 定义一个字典: d={'age':18} #增加一个元素: d['age']=20 d[k]=v d.setdefault('age',18) d.setde ...
- asp.net webform 不显示__doPostBack的原因及某种解决方法
为了维护老旧的asp.net webform系统,今天发现一个问题:asp.net页面没有自动生成__doPostBack方法,提示该js方法不存在.于是在网上找了大量的方法,基本上都说是IE的问题, ...
- 每天CSS学习之white-space
white-space是CSS的属性,其作用是规定文本不进行换行. white-space有以下几个值: 1.normal:该值为默认值,段落前后的空白会被浏览器忽略.如下所示: <div st ...
- Express工作原理和源码分析一:创建路由
Express是一基于Node的一个框架,用来快速创建Web服务的一个工具,为什么要使用Express呢,因为创建Web服务如果从Node开始有很多繁琐的工作要做,而Express为你解放了很多工作, ...
- 在CentOS 7上使用Tripwire监控和检测修改的文件
在CentOS 7上使用Tripwire监控和检测修改的文件 Tripwire是一个免费的开源入侵检测系统(IDS). 它是用于监视和警告系统上文件更改的安全工具. Tripwire是一个功能强大的I ...
- 什么是RUP
Rational统一过程(Rational Unified Process,RUP)是由Rational软件公司推出的一种完整且完美的软件过程. RUP总结了经过多年商业化验证的6条最有效的软件开 ...
- SpringMVC配置及使用
SpringMVC基本配置 SpringMVC是基本请求响应模式的框架. 在项目中集成SpringMVC框架首先需要导入相关的jar包,所需包具体如下: commons-dbcp.jar common ...
- Array.apply(null, {length: 20})和Array(20)的理解
话说今晚在学习Vue.js教程里:Render函数,这一章节是发现了一个问题,就是利用下面的这个render函数可以渲染20个重复的段落: render: function (createElemen ...
- TensorFlow函数:tf.ones_like
tf.ones_like 函数 ones_like( tensor, dtype=None, name=None, optimize=True ) 定义在:tensorflow/python/ops/ ...
- 联想 Lenovo PWR-G60 无线掌中宝拆机
从朋友那里弄了台Lenovo PWR-G60,现在已经停产了,淘宝上某店卖的国产WIFI Pineapple貌似就是拿这个刷的,打算出篇DIY教程 现在人在外地,编程器.热风枪.烙铁工具啥的都没有,更 ...