spring

1、spring容器的作用

  • Spring能有效地组织并管理中间层对象,减少类与类之间的依赖,达到松耦合的目的。 
  • 由于spring容器中取出的对象默认是单例模式,从而可以避免单例模式在项目中过多的使用。
  • spring容器可以实现真正的面向接口编程
  • spring的AOP通过代理模式,提供面向切面编程。并提供声明性事务管理。
  • spring支持JDBC及常见的ORM框架,以及支持常见的MVC框架

 

 

2、IOC是什么?

  • 控制反转,不直接建对象,由配置文件描述类与类的关系。
  • 采用工厂模式将各个组件组合在一起。

   

   

3、IOC注入数据的方式:

  • 接口注入setter注入(set方法注入),构造方法注入(利用构造方法完成属性的注入)
  • ioc容器通过读取配置文件进行装配
  • IoC把工厂方法和对象生成这两者合并在一起
  • IoC的目的就是提高程序的灵活性和可维护性
  • IoC中最基本的Java技术就是“反射”编程

   

4、spring环境的搭建。

  • aop:支持代理
  • core:核心包
  • MVCMVC支持
  • ORM:映射
  • webweb支持

5、spring容器:

  • Bean工厂、
  • 应用上下文。

   

6、Bean工厂和应用上下文的区别。

  •  应用上下文是Bean工厂的子接口,功能更为强大。
  •  Bean工厂是延迟加载,应用上下文是立即加载。
  •  spring容器中取出的实体对象默认是单例模式

  

7、应用上下文的实现类作用。

  • ClassPathXmlApplicationContext  从src目录下查询配置文件。
  • FileSystemXmlApplicationContext 从工程下查询配置文件(只能用于java项目)
  • XmlWebApplicationContext  从web项目的目录下查询配置文件(只能用于web项目)

 

8、bean装配的方式,value和ref的含义。

value是直接赋值,ref引用已经注册的bean。

bean默认是单例模式。利用scope="prototype"singleton="false"提供多实例。

bean的装配支持数组、List、Set、Map、Properties

bean标记提供基本类型、包装类、String、Resource类型(物理提供的资源)注入。不支持如date等复杂类型注入。

 

9、bean中id和name的区别。

id唯一,不能有特殊字符。name可以为一个bean建多个name。并可以有特殊字符。如果在整合Struts1时,必须用name

 

10、了解如何通过构造方法注入。

利用实体类的构造方法完成属性值的注入。

<constructor-arg index="0">

    <value>aaaa</value>

  </constructor-arg>

  需要依赖实体类的构造方法。在创建对象时进行属性值注入。

  相比而言,利用setter注入更为灵活

 

 

11、熟练掌握动态代理和静态代理代码的实现。

 

12、掌握AOP相关的术语。

切面(Aspect):要实现的交叉的非核心业务功能

通知(advice):通知切面的实际实现代码

目标对象(target):被通知的对象

代理对象(proxy):将通知应用到目标对象后创建的对象

切入点(Pointcut):定义通知应用在哪些连接点

 

13、掌握通知类型:

前置通知(方法执行前)

返回后通知(方法正常执行后执行。有异常不执行)

后通知(方法执行后,无论是否有异常都会执行)

环绕通知(方法执行前和方法执行后都附加逻辑)

抛出异常通知(异常抛出后)

 

14、ProxyFactoryBean用于产生代理对象。PointCut用于产生切入点。

 

15、掌握通过自动代理+注解方式实现AOP。

   通过自动代理,配置代码更少,程序代码可读性更好,更简洁,但性能较低

  

自动代理:<aop:aspectj-autoproxy/>

前置通知:@Before("execution(*com..*.*(..))")

返回后通知:@AfterReturning("execution(*com...*.*(..))")

环绕通知:@Around("execution(*com.lovo..*.*(..))")

  ProceedingJoinPoint point;

  Object targetObj = point.getTarget();//得到目标对象

  Object returnObj =  point.proceed();//执行目标方法

抛出异常通知:

@AfterThrowing("execution(* com.lovo.bean..*.*(..))")

 

 

16、熟练掌握SSH整合的步骤。

 

17、可以利用DataSource标记提供数据库连接,代替hibernate基本配置文件的设置。同时可以通过dbcp连接池的设置提高效率。

 

18、spring事务管理

利用HibernateTransactionManager定义事务管理器

spring可以利用@Transactional注解实现事务。

利用AOP环绕通知,通过代理模式实现事务管理。

 

 

19、单例模式

public classSingle{

private static Single s = new Single();

   private Single(){}

    public static Single getSingle(){

return s;

    }

}

 

 

20、web容器加载spring的方式:

ContextLoaderServlet利用servlet加载

ContextLoaderPlugIn  利用struts插件加载

ContextLoaderListener利用监听器加载

 

利用这些方式读取spring相关的配置文件,从而加载spring容器管理的各个组件。

 

 

21、理解三层架构

三层架构是一种架构模式,指的是表现层、业务层、持久层。

 

持久层:采用DAO模式。建立实体类和数据库表映射。将类和表,属性和列建立映射关系。也就是说,哪个类对应哪个表,哪个属性对应哪个列。而持久层的目的也就是完成对象数据和关系数据的转换。

 

业务层:采用事务脚本模式。将一次请求的内容封装成一个方法,保证该方法中所做的数据库更新操作同时成功同时失败,从而避免数据混乱。

 

表现层:采用MVC模式。M为模型,也就是实体类,作用是封装和传输数据。V为视图,也就是jsp和html,负责展示数据。C为控制,也就是servlet和Action,负责业务流程的控制及业务组件的调用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值