大数据学习笔记之Spring(二):Spring

文章目录

  • 一、基于注解的方式配置bean/bean的装配
  • 二、AOP
  • 三、Spring Jdbc

一、基于注解的方式配置bean/bean的装配

1.常用的注解
@Component:标识为一个组件
@Repository:标识为一个持久层的组件
@Service:标识为一个业务层的组件
@Controller:标识为一个表现层的组件
@AutoWired:自动装配
@Qualifier:具体的指定要装配的bean的id值
2.开启注解配置:

use-default-filters=“true/false”:是否使用默认的过滤

context:include-filter需要配合 use-default-fiters="false"来使用

3.@AutoWired
a.优先匹配兼容的类型来进行注入.如果有多个兼容的类型匹配,则再尝试使用被注入的属性名跟ioc容器中
bean的id值进行匹配。
b.required: 默认情况下,被 @AutoWired 标注的属性必须要被装配.可以使用required="false"来改变默认
的行为.
c.可以使用@Qualifier来具体指定要装配的bean的id值.

二、AOP

1.动态代理
a.动态代理实现的方式:
jdk动态代理 基于接口实现代理
cglib动态代理 基于子类的方式实现代理
javassist动态代理 基于子类的方式实现代理
b.jdk的动态代理

	public ArithmeticCalculator getLoggingProxy(){
		//定义代理对象
		ArithmeticCalculator proxy ;
		/**
		 * loader:  ClassLoader 类加载器
		 * interfaces:  目标类的所接口,目的是获取接口中的方法
		 * h: InvocationHandler
		 */
		ClassLoader loader = target.getClass().getClassLoader();
		Class[] interfaces = target.getClass().getInterfaces();
		InvocationHandler h = new InvocationHandler() {
			/**
			 * proxy:代理对象   在invoke方法中一般不会用
			 * method:正在调用的方法
			 * args:调用方法传入的参数
			 */
			@Override
			public Object invoke(Object proxy, Method method, Object[] args)
					throws Throwable {
				String methodName = method.getName();
				//加日志
				System.out.println("ATGUIGU===>The method "+methodName+" begins with "+ Arrays.asList(args));
				//执行目标方法
				Object result = method.invoke(target, args);
				//加日志
				System.out.println("ATGUIGU===>The method "+methodName+" ends with " + result );
				return result;
			}
		};
		proxy = (ArithmeticCalculator)Proxy.newProxyInstance(loader, interfaces, h);
		return proxy ;
	}

2.SpringAOP
a.切面
将横切关注点模块化后形成切面.
b.通知
前置通知
大数据学习笔记之Spring(二):Spring_第1张图片 后置通知
大数据学习笔记之Spring(二):Spring_第2张图片
返回通知
大数据学习笔记之Spring(二):Spring_第3张图片
异常通知
大数据学习笔记之Spring(二):Spring_第4张图片
环绕通知
大数据学习笔记之Spring(二):Spring_第5张图片
3.基于注解方式配置AOP
在这里插入图片描述
4.基于xml方式配置AOP
大数据学习笔记之Spring(二):Spring_第6张图片
5.切面的优先级
如果是基于注解的方式,可以使用@Order(值)来指定切面的优先级.值越小优先级越高
如果是基于xml的方式,可以使用order属性来指定切面的优先级.
6.重用切入点表达式

大数据学习笔记之Spring(二):Spring_第7张图片

三、Spring Jdbc

1.jdbcTemplate
Spring将原始的jdbcAPI重新封装提供了jdbcTemplate的模板类.
2.常用方法:
update: 执行增删改
大数据学习笔记之Spring(二):Spring_第8张图片
batchUpdate:执行批量增删改
大数据学习笔记之Spring(二):Spring_第9张图片
QueryForObject:查询单行返回单个对象/查询返回单个值
大数据学习笔记之Spring(二):Spring_第10张图片
大数据学习笔记之Spring(二):Spring_第11张图片
query:查询多行返回多个对象
大数据学习笔记之Spring(二):Spring_第12张图片
3.在Dao中使用jdbcTemplate:
在Dao类中定义jdbcTemplate,然后通过@AutoWired将jdbcTemplate注入.
大数据学习笔记之Spring(二):Spring_第13张图片

你可能感兴趣的:(Big,Data,Cloud,Technology❤️,#,Big,Data,------,Spring)