1.spring概念:spring是一个全栈式的轻量级框架,提供了展现springmvc,业务层,持久层的技术,同时能够整合世界上其它优秀框架和第三方类库。 2.spring优点:(1)使程序易于测试(2)降低程序间的耦合(3)提供AOP支持,能够实现OOP不能够轻易实现的功能,AOP能够轻易实现(4)提供声明式事务支持,即通过配置来实现事务控制(5)能够整合其它优秀框架。 3.程序间的依赖有两种:(1)类与类之间的依赖(2)方法与方法之间的依赖。 4.解耦:实际开发中应该做到编译期不依赖,运行期才依赖。通过工厂模式可以解耦。 5.Bean:有可重用组件的意思,JavaBean就是指通过java语言编写的可重用组件,像编写的service,dao都可以称为可重用组件。平时学习中很容易把实体类误以为就是javabean,其实不然,javabean的范围要比实体类大。 6.IOC(反转控制)概念:把创建对象的权利交给框架实现,是框架的重要特性,并非是面向对象的专业术语,它还包括依赖注入和依赖查找,IOC核心容器其实就是一个map集合,里面封装有要用到的对象。 7.用于创建容器的ApplicationContext接口有3个重要实现类:(1)ClassPathXmlApplicationContext,用于加载类路径下的配置文件(2)FileSystemXmlApplicationContext,用于加载磁盘下的配置文件,但需要访问权限(3)AnnotationConfigApplicationContext,用于读取注解创建容器。 8.ApplicationContext接口和Beanfactory接口区别:(1)ApplicationContext创建对象时采用的是立即加载方式,适用于单例对象(2)Beanfactory创建对象时使用的是延迟加载的方式,适用于多例对象。 9.bean对象的创建方式一共有3种:(1)通过构造器创建(2)通过工厂的普通方法(3)通过工厂的静态方法 10.bean的作用范围:(1)singleton:用于单例,默认该配置(2)prototype:用于多例(3)request:用于web应用的请求范围(4)session:用于web应用的会话范围(5)global-session:用于集群环境的会话范围,当不是集群环境时,就当成session即可。 11.容器对象是怎么生成的:当我们通过ClassPathXmlApplicationContext读取bean.xml文件时,容器对象就创建了(也可以通过其它两种方式实现创建对象容器)。 12.bean的生命周期:(1)单例:当容器创建时bean对象也跟着创建了,只要容器在,对象就一直在,当容器销毁则对象消亡(2)多例:当我们要使用到对象时,spring框架才会为我们创建对象,对象只要在使用,就一直存活着,当不使用时,则等待垃圾回收器来进行回收。 13.依赖注入(Dependency Injection)概念:IOC只能是降低程序间的依赖,但不能消除依赖,把依赖关系的管理交给spring管理,当一个类需要用到某一个类的对象时,由spring框架为我们提供即可,这种依赖关系的维护称为依赖注入。 14.依赖注入的类型:(1)基本类型,String(2)其它bean类型(3)复杂类型,集合类型。 15.依赖注入的方式:(1)构造方法(2)set方法(3)使用注解。 16.构造方法注入的优缺点:(1)优点:在获取对象时,注入数据是必须的,否则无法成创建对象(2)缺点:改变了bean实例化对象的方式,当我们创建对象时,某些数据用不到也必须得注入。 17.set方法注入的优缺点:(1)优点:创建对象没有明确的限制,可以直接使用默认构造方法(2)缺点:如果某个对象必须有值,获取对象时有可能set方法没有执行。 18.关于注解注入的一些注意事项:@Autowired@Qulifier@Resource这三个注解只能用于注入其它bean类型,而基本类型,String类型只能用@Value注解才能实现注入,集合类型则不能通过注解来注入,得通过xml配置文件才能实现注入。 19.AOP(面向切面编程)概念:通过编译期和运行期的动态代理来实现对程序功能的维护,使程序各部分得到隔离,降低了依赖,增强了代码的可重用性,提高了开发效率。 20.AOP作用及优势:程序运行期不修改代码的情况下来对方法进行增强,降低程序间耦合,提高开发效率,方便维护。 21.AOP相关术语:(1)JoinPoint(连接点):简单理解为业务层的方法(2)PointCut(切入点):指我们要对哪些JoinPoint方法进行增强,没有增强的方法就不是切入点,仅仅是连接点(3)Advice(通知/增强):所谓通知就是指拦截到JoinPoint之后要做的事情就是通知,类型有,前置通知,后置通知,异常通知,最终通知,环绕通知(环绕通知中有明确的切入点调用方法)(4)Introduction(引介):一种特殊的通知,在不修改代码的前提下,它可以在运行期对类动态添加一些方法(5)Target(目标对象):被代理对象(6)Weaving(织入):把增强应用到目标对象来生成新的代理对象的过程(7)Proxy(代理):一个类被AOP织入增强后,产生的一个结果代理类(8)Aspect(切面):通知和切入点的结合。