您的位置:首页 > 编程语言 > Java开发

Spring概述、框架搭建、相关概念、配置详解(XML)和配置详解(注解)

2017-03-28 00:00 337 查看

概述:首先分为三层

Web:Struts2+JSP技术

Service:Spring

Dao层:Hibernate5

Spring:项目中对象的容器,Spring用于管理项目中的所有对象

Spring是一栈式框架,当Spring中放置了可以进行某种功能的对象时,就说Spring具有某种功能了。

简单地说,Spring是一个分层的一栈式轻量级开源框架。

框架搭建:

1.导包:将官方压缩包解压后,从libs目录中拷贝Beans、Context、Core &表现的英文单词(E开头)的包,以及第三方的Spring声明支持的日志包。(4+2)

2. 准备对象:

定义一个实体类。比如,User类

3. 准备Spring配置文件:文件名applicationContext.xml

导入约束:

(1)添加 xsi 即w3的schema约束

(2)从Spring解压目录的schema目录下的beans中选取版本约束。

配置:

将User对象交给Spring容器

Bean标签:name属性(起名)、class属性(User的全限定名)

4. 可以书写测试代码 Junit 4 了。

Spring相关概念: 官网上图

IOC&DI:

Inverse Of Control:控制反转

不使用spring时,对象是由开发人员new生成的

使用了Spring之后,对象由Spring帮我们创建出来

使用了Spring之后,对象的创建方式被反转了。由开发人员创建反转为 由机器(Spring)创建

DI:Dependency Injection 依赖注入

依赖注入是一种技术。

IOC的实现需要 DI技术作支持

依赖注入有两种方式:

set方法注入(常用) &

构造方法注入

ApplicationContext容器&BeanFactory容器:

1. BeanFactory是applicationContext的父级接口

2. 功能上ApplicationContext更加强大

3. BeanFactory接口的容器在管理对象时,容器创建时不会创建任何对象,

当需要从容器中获取对象时,才会创建对象

4. ApplicationContext接口的容器,则会在创建容器时,创建所有容器中的对象

Spring配置详解(XML):

基本配置:

Bean标签:

class属性:对象的完整类名。Spring根据完整类名反射得到对象

name属性:给Spring管理的对象起个名字,在通过容器获取对象时,根据名字获得对象

id属性:与name属性大致类似;

区别:

id先出现,唯一、为空、不能使用特殊字符,同一个配置文件下,只能有一个id;不同配置文件下,后加 载的会覆盖前加载;

name属性非空。方便同 struts1整合

scope属性:指定对象在容器中的作用域,一共5个,说法4个,实际只会用到前2个 ↓

singleton(默认):单例模式。容器创建时创建单例对象

prototype:原型多例。获取多例对象时才创建多例对象,每次都是不同的对象。多例对象也不会放进容器 中管理。Spring只负责创建。

request

session

globalSession

init-method&destroy-method属性:分别指定对象创建后和销毁前的方法

注:销毁方法只在scope为singleton时能看到

Spring创建对象方式:

构造方法创建(常用):





静态工厂创建:





动态工厂创建:





Spring分模块配置:

import引入另外的配置文件,resource="全限定名"

依赖注入:属性

构造方法注入:





set方法注入:

property标签:





p名称空间注入:

准备工作:在根元素中加入属性 xmlns:p="http://www.springframework.org/schema/p"





SPEL表达式:可以在配置中引用其他Bean的属性(只能是值类型(8基本数据类型+1 String))

复杂类型注入:

数组:





list集合:





map集合:





properties类型:





Spring配置详解(注解):

导包:

在Spring 4+2基础上,再加上一个aop.xxx.jar包,位置Spring解压包下,libs目录中

配置文件 开启 注解开关:

1. 先导入约束:Spring解压包下schema目录下的context目录中

2. 配置文件中:





注解:

注册对象:





指定对象作用域:





指定生命周期方法:





值类型注入:@Value可以加在成员变量或set方法上





引用类型注入:

自动注入:





自动+手动:





纯手动:





未完待续……
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javaee ssh 框架 spring
相关文章推荐