zoukankan      html  css  js  c++  java
  • 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"  事务属性

  • 相关阅读:
    ioi1998 Polygon
    [Noip模拟题]Seq
    [noip模拟]分组行动
    入门OJ:photo
    Sgu167 I-country
    入门OJ:简单的网络游戏
    入门OJ:Coin
    ATT&CK实战系列
    Metasploit Framework(二)
    RoarCTF 2019
  • 原文地址:https://www.cnblogs.com/hellowq/p/10078040.html
Copyright © 2011-2022 走看看