spring框架之IOC与AOP

                              学习资料整理

一、IOC(控制反转)
1.是一个概念,一种思想。就是对对象控制权的转移,从程序代码本身反转到了外部容器。
把对象的创建、初始化、销毁等工作交给spring容器来做,由spring容器控制对象的生命周期

DI(依赖注入)
指程序运行过程中,若需要调用另一个对象协助时,无须在代码中创建被调用者,而是依赖于外部容器,由外部容器创建后传递给程序(是目前最优秀的解耦方式)。
依赖注入让Spring的Bean之间以配置文件的方式组织在一起,而不是以硬编码的方式耦合

IOC(控制反转)与DI(依赖注入)的关系
DI是IOC比较流行的实现方式中的一种,IOC将new的过程交给Spring容器去处理

2.XML配置方式
1.普通构造注入(通过反射使用无参构造方法)
2.静态工厂注入
3.动态工厂注入
4.属性注入:给对象中的属性赋值(构造注入constructor、设值注入property、P名称空间注入p:属性=、对象注入、数组和集合注入、Map注入entry key value、Props注入prop key)
3.Java配置方式
1.创建java项目 2.创建实体类 3.创建配置文件类(Configuration\bean)4.测试调用
4.自动配置(Component\Service\Controller\Repository)
1.xml文件的方式(context:component-scan)
2.java配置的方式(Configuration\ComponentScan(“包名”))
Resource(默认根据name注入对象)与Autowired(只能根据类型注入对象和Qualifier使用)
Bean的作用域(prototype、singleton(默认)、request、session)
java配置文件(Scope(value=“作用域”)) xml(scope=“作用域”)
@ImportResource来实现既有配置文件也有JAVA配置(“classpath:配置文件”)的方式

二、AOP(面向切面编程)
对OOP(面向对象编程)的补充和完善,是面向对象中的一种方式
在代码执行过程中动态嵌入其他代码
1.实现方式
基于Schema-based方式实现
基于aspectJ方式实现(注解AND配置)
前置通知:目标方法执行之前调用
后置通知:目标方法执行之后调用
环绕通知:目标方法执行前后都会调用方法,且能增强结果
异常处理通知:目标方法出现异常调用
最终通知:无论秩序是否正常该通知都会执行,类似于try…catch中finally代码块
切入点表达式需要匹配的对象便是目标方法的方法名:如下
execution(public * (. .))
指定切入点为:任意公共方法。
execution(
set (. .))
指定切入点为:任何一个以“set”开始的方法。
execution(
com.xyz.service..(. .))
指定切入点为:定义在service包里的任意类的任意方法。
execution(
com.xyz.service. ..(. .))
指定切入点为:定义在service包或者子包里的任意类的任意方法。“…”出现在类名中时,
后面必须跟“”,表示包、子包下的所有类。
execution(
.service..(. .))
指定只有一级包下的serivce子包下所有类(接口)中的所有方法为切入点
execution(
. .service..*(. .))
指定所有包下的serivce子包下所有类(接口)中的所有方法为切入点
*
java中的乱码处理:
1.项目编码
2. 文件本身的编码(jsp或者html的head中指定的编码)
3. GET请求乱码(修改Tomcat配置)
4. POST请求乱码(Java代码解决,可以使用过滤器统一解决)
5. 响应乱码(修改响应编码,主要是修改content-type)
6. 数据库乱码:
1. 确认乱码根源(数据库乱码还是java中乱码)
2. 通过在java中打印日志,确认乱码的根源
3. 第三种情况,数据在从Java到数据库实例的过程中乱码,此时修改数据库连接地址:
jdbc:mysql:///test01?useUnicode=true&characterEncoding=utf-8

JdbcTemplate

JdbcTemplate就是采用AOP思想,将Jdbc操作中的模板代码全部简化,开发者只需要完成最最核心的SQL以及结果的检索。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值