spring入门(使用xml进行bean注入)
来源:互联网 发布:云 大数据 广州 编辑:程序博客网 时间:2024/06/07 03:18
spring是一个控制反转和面向切面的容器框架
控制反转IOC:程序本身不负责对象的创建,由外部容器创建维护,依赖注入是其中的一个实现形式
bean的容器:beanfactory提供结构和基本功能,加载初始化bean。Context保存bean对象。
Web一般用ContextLoaderListener或者ContextLoaderServlet获得context
ApplicationContext context = new FileSystemXmlApplicationContext("classpath*:spring-ioc.xml");//获得上下文 InjectionService oneInterface = (InjectionService) context.getBean("injectionService");//从上下文中获得bean
bean设置注入:就是将bean的方法属性进行初始化
<bean id="injectionService" class="Interface.InjectionServiceImp"> <property name="injectionDAO" ref="injectionDAO"></property> </bean> <bean id="injectionDAO" class="Interface.InjectionDAOImpl"></bean>
bean构造注入:传入bean的构造方法的参数。
<bean id="injectionService" class="Interface.InjectionServiceImp"> <constructor-arg name="injectionDAO" ref="injectionDAO"></constructor-arg> </bean> <bean id="injectionDAO" class="Interface.InjectionDAOImpl"></bean>
Bean的自动装配:
No,byname,byType,Constructor
byname:首先在头字段里面设置default-autowire,然后在同一个xml文件下如果有一个bean:a的名字和另一个一个bean:b的属性名和类型相同(其实应该是和setProperty()里面的Property字段相同,如果Property的首字母是大写的,则Bean a的id首字段可以为小写,但是一般都会让IDE自动设置属性的getter和setter所以一般不用管),并且b具有set的方法,则自动将a装配给b。(猜测是用反射机制来获得method,然后用method的后缀与beanID匹配。)
bytype:基本过程如上,但是是根据class来装配的
Construction:是根据构造器里面的class类型来匹配的
bean的配置项:id,class,scope,constructor-arg,property,autowiring/lazy-initialization mode,initialization/destruction method。
bean作用域:singleton单例(单个容器中,暂时理解为在同一context中),prototype每次请求创建新实例,request在request里面有效,session。
bean的生命周期:
定义,初始化,使用,销毁。
针对具体某个bean初始化的方法:1.实现initbean接口覆盖afterpropertySet方法。2.配置init-method。销毁的方法1.实现disposalbean,覆盖destroy2.配置destroy-method
全局默认的初始化和销毁的方法:头文件bean里面加入default-init-method和default-destroy-method
如果三种初始化和销毁的方法都存在,则全局不执行,接口先执行,method后执行。如果存在全局默认的初始化和销毁声明但是class里面不存在method也不会有报错
Aware接口:可以通过aware接口获取spring资源
Resource:resource是从applicationContext.getResource(“地址”)获取的,除了一下几种路径获得地址也可以直接输入文件名,则文件的路径前缀是等于当前的ApplicationContext的文件路径前缀的。
根据不同的project系统获得路径的方法:
classpath*:当前project的相对路径
FileSystemPath:根据文件的绝对路径
ServletContextPath:根据Servlet的相对路径
在这里提一下,classpath的默认路径是定义为source文件的文件夹下的文件。
classpath:只会到你的class路径中查找找文件;
classpath*:不仅包含class路径,还包括jar文件中(class路径)进行查找
ApplicationContext的问题:ApplicationContext可以加载bean,获得resource获得spring资源,如果将bean容器看做一个实体的话,那是不是可以将Context比作为对于容器的一个I/O类。
- spring入门(使用xml进行bean注入)
- 【Spring】使用XML进行Bean装配与依赖注入
- Spring--5.bean管理 依赖注入(xml)
- spring 使用注解注入bean
- (学习笔记)spring入门之Bean的依赖注入
- Spring杂记之Bean注入(xml)
- Spring用bean.xml注入对象
- Spring入门之bean属性注入集合
- spring、IoC控制反转和DI依赖注入入门、基于XML的Bean装配、基于注解的Bean装配
- spring的注入参数(bean对象中又有bean属性),beans.xml配置
- Spring(三) bean注入
- 使用spring进行bean装配
- Spring入门(4),装配Bean,基于xml
- 使用XPath解析xml实现简单的Spring IOC完成bean的依赖注入
- Spring IOC使用(1) bean的注入
- Spring配置使用注解注入bean
- 过滤器中使用spring容器注入bean
- spring使用注解注入bean理解
- 字符编码
- iOS网络请求浅谈
- http返回错误码
- Oracle函数
- 数据结构与算法面试题80道
- spring入门(使用xml进行bean注入)
- IPv4网络访问权限怎么解决?
- C# Post请求 方法
- codeforces 782b The Meeting Place Cannot Be Changed
- ORACLE一次大量数据删除导致问题的处理
- Java 枚举类型知识点
- java中的访问权限修饰符 含义及分类
- gcc和g++的包含头文件库文件方法
- shell之输入输出重定向