java面试题网

普通会员

257

帖子

9

回复

129

积分

楼主
发表于 2018-03-22 16:47:50 | 查看: 367| 回复: 0

①Spring是一个开源的业务层框架,分模块,一站式框架,它能够整合各种其他主流框架;

②Spring的实质就是一个实现了工厂模式的工厂类,在其配置文件中,通过添加<bean>标签,来创建实例对象;

③Spring的核心——IoC/DI;

a)IoC(Inverse of Control)控制反转,将对象的创建全交给Spring去管理,然后Spring容易通过依赖注入的方式,注入给调用者。这样做的好处是,让bean与bean之间以配置文件的形式组织在一起,而不是以硬编码的方式耦合在一起。

b)依赖注入的方式有三种:接口注入、Setter方法注入(使用<property name="" value或者ref="">)、构造注入;

c)IoC的注解方式:

(Ⅰ)在applicationContext.xml配置文件中开启组件扫描

<context:component-scan base-package="com.itheima"/>

(Ⅱ)在实现类上添加注解:@Component(value="id值")

@Component的三个衍生注解(功能一样)

* @Controller -- 作用在WEB层

* @Service -- 作用在业务层

* @Repository -- 作用在持久层

(Ⅲ)3.属性注入的注解(说明:使用注解注入的方式,可以不用提供set方法)

* @Value -- 用于注入普通类型

* @Autowired -- 默认按类型进行自动装配

* @Qualifier -- 强制使用名称注入

* @Resource -- 相当于@Autowired和@Qualifier一起使用,强调:Java提供的注解,属性使用name属性

④Spring的核心——AOP;

a)AOP(面向切面编程),可以在不修改源代码的前提下,对程序进行增强,例如,加入日志,加入权限判断,加入异常处理等;

b)AOP底层使用的是代理技术,分为JDK动态代理(面向接口)和CGLIB动态代理(没接口的,产生子类代理);

c)使用步骤:

(Ⅰ)编写切面类==>在IoC中配置切面类的bean标签==>配置aop相关

<aop:config>

<!-- 配置切面类 -->

<aop:aspect ref="切面类">

<!-- 通知类:前置通知,还需要配置切入点表达式 ) -->

<aop:before method="增强方法" pointcut="切入点表达式"/>

</aop:aspect>

</aop:config>

(Ⅱ)切入点表达式:execution([修饰符] 返回值类型 包名.类名.方法名(参数))

一般简写为:execution(* com.*.*.*DaoImpl.save*(..))

(Ⅲ)通知类型

前置通知:<aop:after method="before" pointcut-ref="myPointcut3"/>

最终通知:如果程序出现了异常,最终通知也会执行。

  <aop:after method="after" pointcut-ref="myPointcut3"/>

后置通知:<aop:after-returning method="afterReturning" pointcut-ref="myPointcut2"/>

异常抛出通知:<aop:after-throwing method="afterThorwing" pointcut-ref="myPointcut3"/>

环绕通知:<aop:around method="around" pointcut-ref="myPointcut2"/>

* 要注意:目标的方法默认不执行,需要使用ProceedingJoinPoint对来让目标对象的方法执行。



您需要登录后才可以回帖 登录 | 立即注册

java面试题网无聊看看网与java建站系统提供技术支持V2.1 网站地图 © 2016-2018