Spring概述、框架搭建、相关概念、配置详解(XML)和配置详解(注解)
来源:互联网 发布:邮政网络培训学院官网 编辑:程序博客网 时间:2024/06/05 07:51
概述:首先分为三层
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创建对象方式:
构造方法创建(常用):
图666666
静态工厂创建:
图666666
动态工厂创建:
图666666
Spring分模块配置:
import引入另外的配置文件,resource="全限定名"
依赖注入:属性
构造方法注入:
图666666
set方法注入:
property标签:
图666666
p名称空间注入:
准备工作:在根元素中加入属性 xmlns:p="http://www.springframework.org/schema/p"
图666666
SPEL表达式:可以在配置中引用其他Bean的属性(只能是值类型(8基本数据类型+1 String))
复杂类型注入:
数组:
图666666
list集合:
图666666
map集合:
图666666
properties类型:
图666666
Spring配置详解(注解):
导包:
在Spring 4+2基础上,再加上一个aop.xxx.jar包,位置Spring解压包下,libs目录中
配置文件 开启 注解开关:
1. 先导入约束:Spring解压包下schema目录下的context目录中
2. 配置文件中:
图666666
注解:
注册对象:
图666666
指定对象作用域:
图666666
指定生命周期方法:
图666666
值类型注入:@Value可以加在成员变量或set方法上
图666666
引用类型注入:
自动注入:
图666666
自动+手动:
图666666
纯手动:
图666666
未完待续……
- Spring概述、框架搭建、相关概念、配置详解(XML)和配置详解(注解)
- Spring框架(一)环境搭建、配置(xml、注解)、整合JDBC以及项目详解
- 基于注解的Spring MVC 框架搭建及配置详解
- spring注解配置详解
- spring相关配置详解
- Struts框架_概述、搭建、架构、配置详解及ActionAPI
- Spring注解详解 概述
- Spring MVC 框架搭建及详解 (注解)
- Spring4.X + Spring MVC + Mybatis3 零配置应用开发框架搭建详解(4) - Scheduled注解实现任务调度
- spring框架中web.xml的配置详解
- Java开发框架--spring-servlet.xml 配置详解
- Java开发框架--spring-mvc.xml 配置详解
- Java开发框架--spring-myBatis.xml 配置详解
- Spring MVC 框架搭建配置方法及详解
- Spring applicationContext.xml配置详解
- spring配置 web.xml详解
- spring-mvc框架配置详解
- ssh 搭建框架spring相关配置(1)
- POJ 2728:Desert King
- Spring整合JDBC、Spring的AOP事务开发、Spring注解整理
- 循环不变量的优化
- Spring的AOP开发
- 浮点运算的优化
- Spring概述、框架搭建、相关概念、配置详解(XML)和配置详解(注解)
- 函数参数中使用const
- Struts框架_概述、搭建、架构、配置详解及ActionAPI
- Qt5安装后QtCreator控件,代码中中文输入法不可用
- Struts2的结果类型、ServletAPI获取、参数接收
- 惊人的超速学习实验
- 使用jpush-client-sdk实现极光jpush
- Hibernate持久化类、主键生成策略、持久户对象、一级缓存、事务和五种检索方式
- 优秀电子工程师成长之道【转】