Spring总结

来源:互联网 发布:cmd关闭端口命令 编辑:程序博客网 时间:2024/05/21 22:55
1、spring容器的作用
       a、Spring能有效地组织并管理中间层对象,减少类与类之间的依赖,达到松耦合的目的。  
b、由于spring容器中取出的对象默认是单例模式,从而可以避免单例模式在项目中过多的使用。
c、spring容器可以实现真正的面向接口编程
d、spring的AOP通过代理模式,提供面向切面编程。并提供声明性事务管理。
e、spring支持JDBC及常见的ORM框架,以及支持常见的MVC框架




2、IOC是什么?
    控制反转,不直接建对象,由配置文件描述类与类的关系。采用工厂模式将各个组件组合在一起。
    
    
3、IOC注入数据的方式:
    接口注入,setter注入(set方法注入),构造方法注入(利用构造方法完成属性的注入)
        ioc容器通过读取配置文件进行装配
IoC把工厂方法和对象生成这两者合并在一起
IoC的目的就是提高程序的灵活性和可维护性
IoC中最基本的Java技术就是“反射”编程
    
4、spring环境的搭建。(aop、core、mvc、orm、web)
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 class Single{
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,负责业务流程的控制及业务组件的调用
0 0
原创粉丝点击