Spring

2019-11-06  本文已影响0人  开始以后_

概述

IOC

IOC的底层原理

<?xml version="1.0" encoding="UTF-8"?>
<beans 
xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context" 
    xmlns:jdbc="http://www.springframework.org/schema/jdbc"  
    xmlns:jee="http://www.springframework.org/schema/jee" 
    xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:aop="http://www.springframework.org/schema/aop" 
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:util="http://www.springframework.org/schema/util"
    xmlns:jpa="http://www.springframework.org/schema/data/jpa"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd
        http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-4.1.xsd
        http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-4.1.xsd
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.1.xsd
        http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsd
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.1.xsd
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd
        http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.1.xsd">
</beans>

属性注入(DI)

测试:


test

Spring 的 bean 管理(注解)

一、导入 jar 包

复杂数据类型注入

二、创建 Spring 配置文件,导入约束

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!-- bean definitions here -->
</beans>

三、再 Spring 中开启注解扫描

开启注解扫描

四、注解创建对象

1572178213540_18.png

4.1 创建对象有四个注解

4.2 创建对象的方式

五、注解注入属性

  1. 创建service类,创建dao类,再service中得到dao对象

    • 用注解创建 dao 对象和 service 对象


      dao对象
      service对象
    • 再service类中创建dao类型的属性,并用注解注入对象,有两种方式
      第一种:@Autowired


      @Autowired

    第二种:@Resource


    @Resource
    • 测试
      • image.png

AOP

一、AOP概念

二、AOP原理

AOP原理

三、AOP操作术语

四、使用AspectJ实现AOP

1. 介绍

2. 实现AOP的两种方式

3. 实现步骤

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"> <!-- bean definitions here -->
</beans>
package com.ljw.spring.annotation;

import org.aspectj.lang.ProceedingJoinPoint;
import org.springframework.stereotype.Component;

@Component(value="userAdvice")
public class UserAdvice {
    
    /**
     * @description 前置通知
     */
    public void userBefore() {
        System.out.println("前置通知........");
    }
    
    /**
     * @description 后置通知
     */
    public void userAfter() {
        System.out.println("后置通知........");
    }
    
    /**
     * @description 环绕通知
     * @param proceedingJoinPoint
     * @throws Throwable
     */
    public void userAround(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {
        // 方法之前
        System.out.println("方法之前..........");
        
        // 执行增强的方法
        proceedingJoinPoint.proceed();
        
        // 方法之后
        System.out.println("方法之后..........");
    }
}

Spring整合web项目

一、实现原理

  1. 通过 new 对象,功能可以实现,但效率很低
  1. 实现思想:把加载配置文件和创建对象过程,在服务器启动的时候完成

  2. 具体实现原理
    (1) ServletContext对象
    (2) 监听器
    (3) 具体步骤

    • 在服务器启动的时候,为每个项目创建一个ServletContext对象
    • 在 ServletContext 对象创建的时候,使用监听器可以监听 ServletContext对象什么时候创建
    • 当监听器监听到 ServletContext 对象创建的时候,加载 spring 配置文件,创建配置文件对象
    • 把创建出来的对象放到 ServletContext 域对象里面(setAttribute 方法)
    • 获取对象(getAttribute 方法)

知识点

ServletContext 对象

一、介绍

二、作用

三、域对象

  1. 域对象介绍
  1. 怎样得到 ServletContext 对象
  1. 域对象方法

监听器 Listener

一、监听器模型

二、执行步骤

  1. 给事件源注册监听器。
  2. 组件接受外部作用,也就是事件被触发。
  3. 组件产生一个相应的事件对象,并把此对象传递给与之关联的事件处理器。
  4. 事件处理器启动,并执行相关的代码来处理该事件。

execution表达式

一、语法

二、常用的写法

上一篇下一篇

猜你喜欢

热点阅读