黑马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的更多相关文章

  1. Eclipse/JavaWeb (三)三大框架之Spring框架 持续更新中...

    (一)发展历史 现在我们有三个层了,可是每层之间的调用是怎样的呢?比如显示层的struts需要调用一个业务类,就需要new一个业务类出来,然后使用:业务层需要调用持久层的类,也需要new一个持久层类出 ...

  2. [Java面试五]Spring总结以及在面试中的一些问题.

    1.谈谈你对spring IOC和DI的理解,它们有什么区别? IoC Inverse of Control 反转控制的概念,就是将原本在程序中手动创建UserService对象的控制权,交由Spri ...

  3. [Spring框架]Spring开发实例: XML+注解.

    前言: 本文为自己学习Spring记录所用, 文章内容包括Spring的概述已经简单开发, 主要涉及IOC相关知识, 希望能够对新入门Spring的同学有帮助, 也希望大家一起讨论相关的知识. 一. ...

  4. Spring IoC反转控制的快速入门

    * 下载Spring最新开发包 * 复制Spring开发jar包到工程 * 理解IoC反转控制和DI依赖注入 * 编写Spring核心配置文件 * 在程序中读取Spring配置文件,通过Spring框 ...

  5. 关于Spring的IOC和DI

    原始调用模型 Spring的演化过程 Spring的调用过程 ======================================= IoC[理解][应用][重点] 1.IoC(Inversi ...

  6. Spring第三天

    Spring第三天 整体课程安排(3天+2天): 第一天:Spring框架入门.IoC控制反转的配置管理.Spring Web集成.Spring Junit集成. 第二天:Spring AOP面向切面 ...

  7. Spring第二天

    Spring第二天 整体课程安排(3天+2天): 第一天:Spring框架入门.IoC控制反转的配置管理.Spring Web集成.Spring Junit集成. 第二天:Spring AOP面向切面 ...

  8. [Spring面试] 问题整理

    1.谈谈你对spring IOC和DI的理解,它们有什么区别? IoC:Inverse of Control 反转控制的概念,就是将原本在程序中手动创建UserService对象的控制权,交由Spri ...

  9. 17_8_9 Spring 注入

    1 Spring 的 Bean 的属性注入: 构造方法的方式注入属性: <!-- 第一种:构造方法的方式 --> <bean id="car" class=&qu ...

  10. Spring依赖注入 — util命名空间配置

    要使用<util>标签,必须在XML中加入util名称空间(namespace): xmlns:util="http://http://www.springframework.o ...

随机推荐

  1. [Codeforces708E]Student's Camp

    Problem 一个n*m块砖的建筑,一共k天,每天风从两边吹,吹掉砖的概率为p,反之为1-p,求最终建筑没有倒塌的可能性(上层与下层有交集且每一层都有砖) Solution 首先,我们可以预处理出p ...

  2. [POJ2761]Feed the dogs

    Problem 查询区间第k大,但保证区间不互相包含(可以相交) Solution 只需要对每个区间左端点进行排序,那它们的右端点必定单调递增,不然会出现区间包含的情况. 所以我们暴力对下一个区间加上 ...

  3. xshell提示必须安装最新的更新

    今天大家的xshell基本都出了这个问题 调整时间,调整到比较前的时间,打开xshell即可. 然后工具->选项 把更新去了

  4. 深入研究sqlalchemy连接池

    简介: 相对于最新的MySQL5.6,MariaDB在性能.功能.管理.NoSQL扩展方面包含了更丰富的特性.比如微秒的支持.线程池.子查询优化.组提交.进度报告等. 本文就主要探索MariaDB当中 ...

  5. log4j 输出原始数据到指定日志文件

    项目中需要将上传的数据输出到指定的log文件,之前对log4j缺少深入认识,普遍将整个应用的日志到输出到一个文件. 在经理的帮助下,业务数据可以直接输出到指定的log文件,现将配置及使用流程整理一下. ...

  6. Remove duplicates from array

    //Given a sorted array, remove the duplicates in place such that each element appear only // once an ...

  7. how to istall virtualbox on centos

    https://tecadmin.net/install-oracle-virtualbox-on-centos-redhat-and-fedora/

  8. ResNet 简介

    resnet 又叫深度残差网络 图像识别准确率很高,主要作者是国人哦 深度网络的退化问题 深度网络难以训练,梯度消失,梯度爆炸,老生常谈,不多说 resnet 解决了这个问题,并且将网络深度扩展到了最 ...

  9. tensorflow-learning-where-what-how

    这么优秀的外国小哥哥... https://github.com/machinelearningmindset/TensorFlow-Course tensorboard使用:https://gith ...

  10. Android:AndroidManifest.xm中xmlns的作用

    有了它,你就可以alt+/作为提示,提示你输入什么,不该输入什么,什么是对的,什么是错的,也可以理解为语法文件.或者语法判断器什么的 这个主要作用是在运行的时候那些控件的属性都是通过它来识别的,如果上 ...