spring的一些配置和重要的接口和类
spring的配置文件
通常是applicationContext.xml(具体的bean配置会在后面内容中详解)
setter方法注入:
<property name=“” value=“jake”>
或者<property name=“”>
<value>xxx</value>
集合注入:
集合的注入都是给<property>添加子标签
例子:数组:
<array>
<value>zzz</value>
<value>zzz</value>
<value>zzz</value>
</array>
map:
<map>
<entry key=“” value="">
</map>
property:
<property name="">
<props>
<prop key="xx"> </prop>
</props>
</property>
spring的基本使用(第一个特征ioc控制反转):
//获取一个spring容器接口的实例:(用此方法获取的bean是实时bean)
ApplicationContext applicationContent= new classpathxmlapplicationcontent(xml);
//根据一个id获得一个bean容器
U u= (U)applicationContent.getBean("id号");
spring的另一个重要特征di:依赖注入
依赖:一个对象需要使用另一个对象
注入:通过setter方法进行另一个对象实例设置
<property>用于进行属性注入
name:bean的属性名,通过setter方法获得
ref:另一个bean的id值的引用
几个重要的接口和类:
beanFactory(懒加载):这是一个工厂,用于生产任意bean 加载xml运行位置--》web-inf/class/xml
application是beanFactory的子接口功能更强大(当配置文件被加载,就进行对象的实例化,这就是bean的自动装配,不是懒加载)
(国际化处理,事件传递,bean自动装配,各种不同应用层的context实现)
想要使用延时加载的话 则使用BeanFactory接口
BeanFactory benaFactory= new XmlBeanFactory(new ClassPathResource(xmlpath));
装配bean的三种实例化方式
3种bean实例化方式:默认构造,静态工厂,实例工厂
静态工厂:
常用与spring整合其他框架(工具)
它用于生产实例对象,所有的方法必须是static
<bean id=“” class="工厂全限定类名" factory-method=“静态工厂中的方法”>
实例工厂:
与静态工厂不一样的是bean工厂不需要是static
<bean id=“” class="工厂全限定类名" factory-method="??” factory-bean=“??”>
factory-bean 确定工厂实例
factory-method 确定普通方法
spring的生命周期
1.初始化和销毁:
目标方法执行前执行后,将进行初始化或销毁
<bean id="" class="" init-method="" destory-method="">
init-method 用于配置初始化方法,准备数据
destory-method销毁方法必须是单例的
bean接口.close()方法来销毁实例
2.beanpostprocessor后处理
spring提供一种机制,只要实现此接口beanpostPostprocessor,并将实现类提供给Spring容器,spring容器将自动在初始化(init方法)前before(),后执行after()。
3.postprocessbeforeinit/afterinit处理
spring提供工厂钩子,用于修改实例对象,可以生成代理对象,是aop底层。将a的实例对象传递给后处理,可以生成代理对象并返回(postprocessbeforeinit。。。)
在init后方法中生成代理,因为在前方法中不会执行init方法(除非你在接口中声名全了实现类中的方法)
可以在init后面加代理,这也是spring可以事务管理的原因
spel表达式
对property进行统一编程:
<property name=“” value=“”>
#{benaID}:另一个bean的引用
#{beanId.property}:操作数据
#{beanId.property}通过另一个bena来获得属性,调用方法
#{beanId.property?.toUpperCase()}如果对象不为null,将调用方法
spring的一些配置和重要的接口和类的更多相关文章
- Spring的AOP配置
Spring的AOP配置 1.先写一个普通类: package com.spring.aop; public class Common { public void execute(String us ...
- Spring 对没有实现接口的类使用aspect的时候,可以使用CGLIB
AspectJ中使用CGLIB 在spring中,当对没有实现接口的类使用aspect的时候,可以使用CGLIB, <aop:aspectj-autoproxy proxy-target-cla ...
- Spring Boot常用配置
概述 本文主要写了下Spring Boot的一些常用配置. Spring Boot基本配置 入口类: Spring Boot通常有一个名为*Application的入口类,入口类里面有一个main方法 ...
- 基于注解的Spring多数据源配置和使用
前一段时间研究了一下spring多数据源的配置和使用,为了后期从多个数据源拉取数据定时进行数据分析和报表统计做准备.由于之前做过的项目都是单数据源的,没有遇到这种场景,所以也一直没有去了解过如何配置多 ...
- 从零开始学 Java - Spring 集成 ActiveMQ 配置(一)
你家小区下面有没有快递柜 近两年来,我们收取快递的方式好像变了,变得我们其实并不需要见到快递小哥也能拿到自己的快递了.对,我说的就是类似快递柜.菜鸟驿站这类的代收点的出现,把我们原来快递小哥必须拿着快 ...
- 基于xml的Spring多数据源配置和使用
上一篇讲了<基于注解的Spring多数据源配置和使用>,通过在类或者方法上添加@DataSource注解就可以指定某个数据源.这种方式的优点是控制粒度细,也更灵活. 但是当有些时候项目分模 ...
- 基于注解的Spring AOP的配置和使用
摘要: 基于注解的Spring AOP的配置和使用 AOP是OOP的延续,是Aspect Oriented Programming的缩写,意思是面向切面编程.可以通过预编译方式和运行期动态代理实现在不 ...
- Spring常用的接口和类(二)
七.BeanPostProcessor接口 当需要对受管bean进行预处理时,可以新建一个实现BeanPostProcessor接口的类,并将该类配置到Spring容器中. 实现BeanPostPro ...
- Spring常用的接口和类(一)
一.ApplicationContextAware接口 当一个类需要获取ApplicationContext实例时,可以让该类实现ApplicationContextAware接口.代码展示如下: p ...
随机推荐
- 借助curl理解$GLOBALS['HTTP_RAW_POST_DATA'] ,$_POST, php://input
发送请求代码 post.php <?php $url='http://localhost/web/curl/url.php'; $data='a=123|b=2&c=3'; $heade ...
- 【转】Jmeter常见问题
说明:这些问答是从网上转载的,自己修改了其中的一些内容,如果大家兴趣,可以将大家在使用Jmeter的时候碰到的问题写下来,我们一起补充到这个问答里面,共同努力完善jmeter的资料. 1. JMet ...
- python学习(八) 异常
8.1 什么是异常 8.2 按自己的方式出错 如何引发异常,以及创建自己的异常类型. 8.2.1 raise语句 >>> raise Exception Traceback (mos ...
- 关系数据库域关系演算语言QBE
QBE: Query By Example 基于屏幕表格的查询语言 查询要求:以填写表格的方式构造查询 用示例元素(域变量)来表示查询结果可能的情况 查询结果:以表格形式显示 QBE操作框架 ...
- MongDB安装使用
4.MongoDB 下载 MongoDB 提供了可用于 32 位和 64 位系统的预编译二进制包,你可以从MongoDB官网下载安装,MongoDB 预编译二进制包下载地址:https://www.m ...
- Android 4 学习(10):Adapters简介
参考<Professional Android 4 Development> Adapters简介 Adapter用于将数据和实现AdapterView接口的ViewGroup绑定在一起. ...
- 使用Selenium对付一个点击游戏
继续来熟悉Selenium的使用,这次来玩一个Html5游戏.原网址在这:http://tianmaying.com/app/clicking/# 游戏是这样的,5秒内你能点击这个按钮几次.一般人都只 ...
- Winform Datagridview 单元格html格式化支持富文本
Winform Datagridview 单元格html格式化支持富文本 示例: 源码:https://github.com/OceanAirdrop/DataGridViewHTMLCell 参考: ...
- Mac os JAVA 开发环境配置简述
本文原文来源:http://blog.csdn.NET/johnstrive/article/details/7791451 1.Mac 自带jdk1.6(本人的机器是这样至于新Mac自带的版本就不清 ...
- JanusGraph : 图和图数据库的简介
JanusGraph:图数据库系统简介 图(graph)是<数据结构>课中第一次接触到的一个概念,它是一种用来描述现实世界中个体和个体之间网络关系的数据结构. 为了在计算机中存储图,< ...