Spring小结(依赖注入,JdbcTemplate,AOP,反射访问私有属性)

Spring依赖注入的五种方式:

						1.property属性

						2.构造函数注入

						3.p空间注入

						4.spel注入

										{

											   访问成员属性   #{对象.属性名}

											   访问静态方法   #{T(包名.类名).方法名([参数])}

											   访问成员方法   #{对象.方法名()}

										}

						5.注解

Spring JdbcTemplate的两种使用方式:

						1.使用 ComboPooledDataSource创建连接池对象,并对连接池对象赋值,然后创建一个JdbcTemplate对象执行sql语句。

						2.用Spring创建ComboPooledDataSource和JdbcTemplate对象。

						{

										JdbcTemplate的3种常用方法:

													update:实现增删改

													queryForObject:查询的结果是一个对象或者单个值

													query:查询 返回集合

						}

Aop的3种模式:

				静态代理

				动态代理

				{

							jdkProxy(实现InvocationHandler接口)

							cglib(实现 MethodInterceptor接口)(jdk自带的代理方式 必须要实现接口,有限制,所以有Cglib方式)

				}

				SpringAop:

				{

							通过配置文件织入

							通过注解的方式织入

				}

反射访问私有属性的方法有两种:

1.调用私有属性的set方法

2.将私有属性通过反射变为公有属性(只在反射的时候有效)

Test类:

//第二种方式:
@Test
    public void test2()
    {
        //第2种方式:
        DrinkService DrinkService1 = new DrinkService();
        Class clazz = DrinkService1.getClass();
        try {
        	//指定要访问的私有属性名
            Field field = clazz.getDeclaredField("iDrinkDao");
			//设置为可访问
            field.setAccessible(true);
			//创建一个新的MysqlDrinkDao对象
            MysqlDrinkDao mysqlDrinkDao = new MysqlDrinkDao();
			//对DrinkService1里面的iDrinkDao赋值
            field.set(DrinkService1,mysqlDrinkDao);
			//测试是否赋值成功
            DrinkService1.add();

        } catch (NoSuchFieldException | IllegalAccessException e) {
        }

    }

在这里插入图片描述

MysqlDrinkDao类:

package com.test.dao.impl;

import com.test.dao.IDrinkDao;

public class MysqlDrinkDao implements IDrinkDao {
    @Override
    public void add() {
        System.out.println("连接Mysql数据库");
    }
}

DrinkService类:

package com.test.service.impl;

import com.test.dao.IDrinkDao;
import com.test.service.IDrinkService;

public class DrinkService implements IDrinkService {

    private IDrinkDao iDrinkDao;

    @Override
    public void add() {
        iDrinkDao.add();
    }
}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值