spring容器与IOC项目的创建
来源:互联网 发布:ipad小说软件 编辑:程序博客网 时间:2024/06/14 23:24
Spring容器
spring容器可以帮助管理所有的Bean对象, 在spring容器读取Bean实例之前,必须对容器进行实例化,只有在容器实例化后,才可以从容器里获取Bean实例并使用
Spring提供了两种类型的容器实现
BeanFactory: IOC 容器的基本实现.
ApplicationContext: 提供了更多的高级特性.是BeanFactory的子接口.
BeanFactory 是 Spring框架的基础设施,面向Spring本身;ApplicationContext面向使用Spring框架的开发者,几乎所有的应用场合都直接使用ApplicationContext而非底层的BeanFactory
三个容器:
1:ConfigurableApplicationContext扩展于ApplicationContext,新增加两个主要方法:refresh()和close(), 让ApplicationContext具有启动、刷新和关闭上下文的能力
2:ApplicationContext在初始化上下文时就实例化所有单例的Bean。
ApplicationContext 的主要实现类:
ClassPathXmlApplicationContext("spring.xml")从类路径下加载配置文件
FileSystemXmlApplicationContext("classpath:spring.xml") 从文件系统中加载配置文件
3:WebApplicationContext是专门为WEB应用而准备的,它允许从相对于WEB根目录的路径中完成初始化工作
spring的IOC项目创建
1:IOC和DI
IOC(Inversion of Control)(控制反转):其思想是反转资源获取的方向,传统的资源查找方式要求组件向容器发起请求查找资源,作为回应,容器适时的返回资源。而应用了IOC之后
则是容器主动的地将资源推送给它所管理的组件,组件所做的仅仅是选择一种合适的方式来接受资源,这种行为也被称之为查找的被动形式。
DI(Dependency Injection)(依赖注入)---IOC的另一种表述方式:即组件以一些预先定义好的方式(例如:setter方法)接受来自容器的资源注入。相对于IOC而言,这种表述更直接
2:项目的创建
《1》首先要加入spring所需的jar包,可以在maven项目的pom.xml文件中直接添加一个依赖,可以直接引入spring所需的几个jar包,依赖如下,可选择版本。
<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.3.12.RELEASE</version> </dependency> </dependencies>
《2》此外还需要一个必不可少的xml文件,用来实例化一些对象,文件自己创建,文件名可以随意,可以放在resources目录下、
示例:
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="..." class="..."> <!-- collaborators and configuration for this bean go here --> </bean> <bean id="..." class="..."> <!-- collaborators and configuration for this bean go here --> </bean> <!-- more bean definitions go here --></beans>
3创建与使用一个Bean。
<bean id="别名" class="对象的路径"></bean>
注意:id:Bean的名称,在IOC容器里必须是唯一的。如果没有指定id的类,默认的名字是“类名#编号”
从IOC容器中获取Bean:调用ApplicationContext的getBean()方法.
例:
User user=(User)context.getBean("user");System.out.println(user.getUser().getName());
4:依赖注入的方式:
依赖注入就是给Bean的属性添加值。
Spring支持3种依赖注入的方式
《1》属性注入
属性注入即通过setter方法注入Bean的属性或依赖的对象。
属性注入使用<property>元素,使用name属性指定Bean的属性名称,value属性或<value>子节点指定属性值。属性注入是实际应用中最常用 的注入方式:示例:
<bean id="user" class="com.et.bean.User"><property name="id" value="1001"></property></bean>
引用其他bean:组成应用程序的Bean经常需要互相协作以完成应用程序的功能,使Bean能够相互访问,在Bean配置文件中指定对Bean的应用,在Bean的配置文件中,可以通过<ref>元素为Bean的属性或构造参数指定对Bean的引用:
<
bean id="user1" class="com.et.bean.User"><property name="id" ref=”user”></property></bean>
应用名为user的Bean。
《2》构造器注入
通过构造方法注入bean的属性值或依赖的对象,它保证了Bean实例在实例化后就可以使用。
按索引匹配入参,index代表构造方法中的参数下标,value代表值
<bean id="userConstructorIndex" class="com.et.bean.User"><constructor-arg index="0" value="3"></constructor-arg><constructor-arg index="1" value=属性注入"></constructor-arg></bean>
按类型匹配入参,type代表构造方法中的参数的类型,value代表值
<bean id="userConstructorType" class="com.et.bean.User"><constructor-arg type=”int” value="3"></constructor-arg><constructor-arg index="java.lang.String" value=属性注入"></constructor-arg></bean>
《3》工厂方法注入(很少使用)
- spring容器与IOC项目的创建
- 02.Spring Ioc 容器 - 创建
- Spring--IoC--创建BeanFactory容器
- 【Spring】IOC容器创建对象
- spring的Ioc容器
- Spring的IoC容器
- spring的IOC容器
- Spring 的IOC 容器
- Spring的IOC容器创建过程深入剖析
- spring IOC容器创建对象的三种方式
- Spring的核心之IoC容器创建对象
- 深入研究Spring-IoC :容器创建的几种方式
- spring ioc容器创建过程深入剖析
- spring容器IOC创建对象<二>
- 【Spring】IOC容器--创建对象(六)
- 模仿spring的IOC容器
- Spring 的 IOC 容器讲解
- Spring IOC容器的实现
- 「反向传播」被替代!深度学习可使用「离散优化」方法实现
- 文章标题
- IntelliJ IDEA 下载安装以及破解
- Grails的领域类验证-constraints
- mysql创建外键索引时,出现errno 1005错误
- spring容器与IOC项目的创建
- Promise
- NAT和桥接网络区别
- PLSQL注册码
- vivado 工具问题集
- 将文本框内容变大写的几种实现方式
- springdata和elasticsearch整合时报错,这是什么原因???
- Restful接口中,对象、Map以及Date类型的传参方式
- 字符编码转换_进制转换(GB2312,GBK,JNI,HexTOStr)