5.请介绍一下Spring框架中Bean的生命周期和作用域 (1)bean定义 在配置文件里面用<bean></bean>来进行定义。 (2)bean初始化 有两种方式初始化: A.在配置文件中通过指定init-method属性来完成 B.实现org.springframwork.beans.factory.InitializingBean接口 (3)bean调用 有三种方式可以得到bean实例,并进行调用 (4)bean销毁 销毁有两种方式 A.使用配置文件指定的destroy-method属性 B.实现org.springframwork.bean.factory.DisposeableBean接口 ##作用域 singleton 当一个bean的作用域为singleton, 那么Spring IoC容器中只会存在一个共享的bean实例,并且所有对bean的请求,只要id与该bean定义相匹配,则只会返回bean的同一实例。 prototype Prototype作用域的bean会导致在每次对该bean请求(将其注入到另一个bean中,或者以程序的方式调用容器的getBean() 方法)时都会创建一个新的bean实例。根据经验,对所有有状态的bean应该使用prototype作用域,而对无状态的bean则应该使用 singleton作用域 request 在一次HTTP请求中,一个bean定义对应一个实例;即每次HTTP请求将会有各自的bean实例, 它们依据某个bean定义创建而成。该作用 域仅在基于web的Spring ApplicationContext情形下有效。 session 在一个HTTP Session中,一个bean定义对应一个实例。该作用域仅在基于web的Spring ApplicationContext情形下有效。 global session 在一个全局的HTTP Session中,一个bean定义对应一个实例。典型情况下,仅在使用portlet context的时候有效。该作用域仅在基于 web的Spring ApplicationContext情形下有效。 6.Bean注入属性有哪几种方式?
见下图 (图片3)
spring支持构造器注入和setter方法注入 构造器注入,通过 <constructor-arg> 元素完成注入 setter方法注入, 通过<property> 元素完成注入【开发中常用方式】 7.什么是AOP,AOP的作用是什么?面向切面编程(AOP)提供另外一种角度来思考程序结构,通过这种方式弥补了面向对象编程(OOP)的不足,除了类(classes)以外,AOP提供了切面。切面对关注点进行模块化,例如横切多个类型和对象的事务管理 Spring的一个关键的组件就是AOP框架,可以自由选择是否使用AOP 提供声明式企业服务,特别是为了替代EJB声明式服务。最重要的服务是声明性事务管理,这个服务建立在Spring的抽象事物管理之上。允许用户实现自定义切面,用AOP来完善OOP的使用,可以把Spring AOP看作是对Spring的一种增强
见下图 (图片4)
8.Spring的核心类有哪些,各有什么作用?BeanFactory:产生一个新的实例,可以实现单例模式 BeanWrapper:提供统一的get及set方法 ApplicationContext:提供框架的实现,包括BeanFactory的所有功能 9.Spring里面如何配置数据库驱动?使用”org.springframework.jdbc.datasource.DriverManagerDataSource”数据源来配置数据库驱动。示例如下: <bean id=”dataSource”> <property name=”driverClassName”> <value>org.hsqldb.jdbcDriver</value> </property>
<property name=”url”> <value>jdbc:hsqldb:db/appfuse</value> </property>
<property name=”username”><value>abc</value></property> <property name=”password”><value>abc</value></property> </bean>
|