Spring知识学习

最近复习了一下spring 的技术知识

动态代理

动态代理是spring 的一个底层核心技术,一般通过一下的3个步骤实现
1.一个接口
2.接口的实现类
3.动态代理类

一个简单的例子,新建一个Person的接口,然后实现一个Man 的类,在创建一个动态代理类进行代理,在Man 的输方法前后加上输出当前的系统时间

Person.class

public interface Person {
   
    void hello(String name);
}

Man.class

public class Man implements Person {
   
    public void hello(String name) {
   
        System.out.println("你好 我是" + name);
    }
}

动态代理类

public class DynamicProxy implements InvocationHandler {
   
    private Person person;

    public DynamicProxy(Person person) {
   
        this.person = person;
    }
    
    /**
     * 
     * @param proxy 被代理的类
     * @param method 方法
     * @param args 参数
     * @return
     * @throws Throwable
     */
    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
   
        System.out.println("开始" + System.currentTimeMillis());
        method.invoke(person, args);
        System.out.println("结束" + System.currentTimeMillis());
        return null;
    }
}

调用类

public class DynamicClient {
   
    public static void main(String[] args) {
   
        Person p = new Man();
        //生成了一个动态代理类
        Person proxyPerson = (Person) 
        Proxy.newProxyInstance(p.getClass().getClassLoader(), p.getClass().getInterfaces(), new DynamicProxy(p));
        proxyPerson.hello("谢子豪");
    }
}

Spring 简单的Bean 例子

定义一个Car的类,其中有个一个 版本(brand)成员变量,然后通过spring 配置文件将这个参数的属性进行注入
Car.class

public class Car {
   
    private String brand;
    public void setBrand(String brand) {
   
        this.brand = brand;
    }
    public void run() {
   
        System.out.println(brand + "牌子的汽车在跑");
    }
}

applicationContext.xml
这个配置文件就是spring 的配置文件,我这里放在了IDEA 的resource文件夹下

<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-2.5.xsd
	http://www.springframework.org/schema/context
	http://www.springframework.org/schema/context/spring-context-2.5.xsd">
    <bean id="car" class="springDemo.Car">
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值