A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Jack.李 中级黑马   /  2018-4-10 10:24  /  673 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 Jack.李 于 2018-4-10 10:28 编辑

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定义创建而成。该作用 域仅在基于webSpring ApplicationContext情形下有效。
session
在一个HTTP Session中,一个bean定义对应一个实例。该作用域仅在基于webSpring ApplicationContext情形下有效。
global session
在一个全局的HTTP Session中,一个bean定义对应一个实例。典型情况下,仅在使用portlet context的时候有效。该作用域仅在基于 webSpring ApplicationContext情形下有效。
6.Bean注入属性有哪几种方式?

见下图 (图片3)

file:///C:\Users\MECHREVO\AppData\Local\Temp\ksohtml\wps608F.tmp.png
spring支持构造器注入和setter方法注入
    构造器注入,通过 <constructor-arg> 元素完成注入
    setter方法注入, 通过<property> 元素完成注入【开发中常用方式】
7.什么是AOP,AOP的作用是什么?
面向切面编程(AOP)提供另外一种角度来思考程序结构,通过这种方式弥补了面向对象编程(OOP)的不足,除了类(classes)以外,AOP提供了切面。切面对关注点进行模块化,例如横切多个类型和对象的事务管理
Spring的一个关键的组件就是AOP框架,可以自由选择是否使用AOP 提供声明式企业服务,特别是为了替代EJB声明式服务。最重要的服务是声明性事务管理,这个服务建立在Spring的抽象事物管理之上。允许用户实现自定义切面,用AOP来完善OOP的使用,可以把Spring AOP看作是对Spring的一种增强

见下图 (图片4)

file:///C:\Users\MECHREVO\AppData\Local\Temp\ksohtml\wps6091.tmp.pngfile:///C:\Users\MECHREVO\AppData\Local\Temp\ksohtml\wps60A2.tmp.jpg
8.Spring的核心类有哪些,各有什么作用?
BeanFactory:产生一个新的实例,可以实现单例模式
BeanWrapper:提供统一的getset方法
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>

图片4.png (17.99 KB, 下载次数: 1)

图片4.png

图片3.png (20.37 KB, 下载次数: 7)

图片3.png

1 个回复

倒序浏览
我来占层楼啊   
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马