-
什么是spring ?
Spring是一个轻量级,全站式的开源框架 -
spring核心 ?
Spring的核心是控制反转(IoC)和面向切面(AOP) -
spring优点 ?
1 方便解耦,简化开发
2 AOP编程的支持
3 声明式事务的支持
4 方便程序的测试
5 方便集成各种优秀框架
6 降低JavaEE API的使用难度 -
spring体系结构 ?
分层架构分为20个模块
1 核心容器
2 切面编程
3 jdbc
4 orm(整合hibernate)
5 tx事务管理
6 web
7 struts -
核心容器 ?
beans、core、context、expression -
控制反转IoC ?
IoC:inverse of control ,控制反转:程序将创建对象的权利交予spring。 -
依赖注入DI ?
依赖注入:DI需要依赖ioc的开放环境,在spring创建对象时把对象所依赖的对象设置进来。 -
spring的API中,生产bean的总接口是 ? 我们获取容器使用的接口是 ? 实现类是 ?(如何获取容器)
总接口:Beanfactory
获取容器使用的接口:ApplicationContext
实现类是:ClassPathXmlApplicationContext
获取容器:context. getBean(“ ”) -
如何在项目中导入spring的约束 ? 如何向spring配置文件中导入命名空间的支持 ?
文档 -
spring如何使用 ?(简单说明入门案例的步骤)
1 导入核心jar包和约束
2 实体类User
3 创建核心配置文件applicationContext.xml<bean name="user" class="cn.bgs.pojo.User"></bean>
4 测试
ApplicationContext context=new ClassPathXmlApplicationContext(“applicationContext.xml”);
User user = (User)context.getBean(“user”); -
简单介绍装配Bean基于xml时 , bean的实例化有几种方式 ?
提供三种方式:默认构造、静态工厂、实例化工厂 -
bean的种类有哪些 ?
普通bean:一般情况使用的都是普通bean。如果配置创建就是普通bean实例。
工厂bean:必须实现接口FactoryBean,是一个特殊bean,具有生产的功能,可以生产另一个bean。 -
FactoryBean 和 BeanFactory 的区别是 ?
FactoryBean:是一个特殊Bean,可以生产另一个bean。
BeanFactory:是一个工厂,可以生产任意bean。 -
bean标签中id属性和name属性的区别 ?
id:表示唯一 , 配置的值不能重复 , 在id的配置中不能使用特殊字符
name:配置的值可以重复 , 可以使用特殊字符 -
bean的作用域有哪些 ? 使用哪个属性配置 ?
singleton:默认值,单例。每一次调用getBean() 获得的同一个实例对象。
prototype:多例。每一次调用getBean() 获得的是新实例对象。
request
session
globalSession
(一般使用的是singleton和prototype) -
依赖注入(基于xml)都有哪些种类 ?
基本注入
复杂注入:数组Array,Map,List/Set,Properties
setter方法注入
构造方法注入
p命名空间(了解)
SpEL 表达式(了解) -
如何使用setter方法注入 ?
<!-- property:属性标签 name:对应成员变量的名称 value:需要设置的值 ref:对象注入时引用的另一个bean的名称 --> <!-- 值注入(普通的成员变量) --> <property name="id" value="1"></property> <!-- 对象的注入(依赖的对象) --> <property name="car" ref="car"></property>
<property name="name" value="大黄蜂"></property>
-
如何使用数组的注入 ?
<array> <value>123</value> <value>abc</value> <ref bean="car"/> </array>
-
如何使用list集合的注入 ?
<list> <value>aaa</value> <value>333</value> <ref bean="car"/> </list>
-
如何使用map集合的注入 ?
<!-- 注入键为字符串,值为对象 --> <entry key="座驾" value-ref="car"></entry> <!-- 注入键为对象,值为对象 --> <entry key-ref="user" value-ref="user2"></entry> </map>
-
如何使用properties集合的注入 ?
集合Properties的注入 这个集合的键和值都是String类型的<property name="prop"> <props> <prop key="username">root</prop> <prop key="password">123</prop> </props> </property>
-
装配Bean可以使用哪些注解 ?
使用注解需要在配置文件中开启:<context:component-scan base-package=“cn.bgs.pojo” />
@Component(配置所有bean)
@Repository(dao层)
@Service(service层)
@Controller(web层) -
依赖注入普通的值注入可以使用哪些注解 ?
值注入使用@Value注解 -
依赖注入对象的注入可以使用哪些注解 ?
@Autowired 表示自动注入,底层通过类的类型注入
@Resource(name="") 根据name注入
25、@Autowired 和 @Resource的区别:
@Autowired:是spring 包下提供的注解,表示自动注入(根据类型注入)
@Resource:是javax 包下的注解,表示手动注入(根据name 指定明确注入的bean)
- 改变bean的作用域使用的注解是 ?
@Scope(scopeName=“prototype”)