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的一些配置和重要的接口和类的更多相关文章

  1. Spring的AOP配置

    Spring的AOP配置 1.先写一个普通类: package com.spring.aop; public class Common {  public void execute(String us ...

  2. Spring 对没有实现接口的类使用aspect的时候,可以使用CGLIB

    AspectJ中使用CGLIB 在spring中,当对没有实现接口的类使用aspect的时候,可以使用CGLIB, <aop:aspectj-autoproxy proxy-target-cla ...

  3. Spring Boot常用配置

    概述 本文主要写了下Spring Boot的一些常用配置. Spring Boot基本配置 入口类: Spring Boot通常有一个名为*Application的入口类,入口类里面有一个main方法 ...

  4. 基于注解的Spring多数据源配置和使用

    前一段时间研究了一下spring多数据源的配置和使用,为了后期从多个数据源拉取数据定时进行数据分析和报表统计做准备.由于之前做过的项目都是单数据源的,没有遇到这种场景,所以也一直没有去了解过如何配置多 ...

  5. 从零开始学 Java - Spring 集成 ActiveMQ 配置(一)

    你家小区下面有没有快递柜 近两年来,我们收取快递的方式好像变了,变得我们其实并不需要见到快递小哥也能拿到自己的快递了.对,我说的就是类似快递柜.菜鸟驿站这类的代收点的出现,把我们原来快递小哥必须拿着快 ...

  6. 基于xml的Spring多数据源配置和使用

    上一篇讲了<基于注解的Spring多数据源配置和使用>,通过在类或者方法上添加@DataSource注解就可以指定某个数据源.这种方式的优点是控制粒度细,也更灵活. 但是当有些时候项目分模 ...

  7. 基于注解的Spring AOP的配置和使用

    摘要: 基于注解的Spring AOP的配置和使用 AOP是OOP的延续,是Aspect Oriented Programming的缩写,意思是面向切面编程.可以通过预编译方式和运行期动态代理实现在不 ...

  8. Spring常用的接口和类(二)

    七.BeanPostProcessor接口 当需要对受管bean进行预处理时,可以新建一个实现BeanPostProcessor接口的类,并将该类配置到Spring容器中. 实现BeanPostPro ...

  9. Spring常用的接口和类(一)

    一.ApplicationContextAware接口 当一个类需要获取ApplicationContext实例时,可以让该类实现ApplicationContextAware接口.代码展示如下: p ...

随机推荐

  1. 1、python基础速成

    基础模块 def prt(age,name):#函数定义 print("%s is %d 年龄 old"%(name,age)) if __name__=="__main ...

  2. git fatal: remote origin already exists. 报错解决

    在研究git的时候,随便输了个 git remote add origin xxx; 然后再真正add 远程仓库的时候,报了git fatal: remote origin already exist ...

  3. MVC 控制器之间传值学习——session

    刚接触MVC不久,写的一些代码自己都不忍心看下去.路漫漫其修远兮,宝宝还需努力!之前只用过Session做登录时用户信息的储存,今天对集合类数据做了小小的尝试:利用session在控制器之间传值,以减 ...

  4. Linux下的Memcache安装,启动

    一.linux安装memcache 1. 如果通过下载源码进行安装,则需要下载最新版本http://memcached.googlecode.com/files/memcached-1.4.13.ta ...

  5. 使用wireshark观察SSL/TLS握手过程--双向认证/单向认证

    SSL/TLS握手过程可以分成两种类型: 1)SSL/TLS 双向认证,就是双方都会互相认证,也就是两者之间将会交换证书.2)SSL/TLS 单向认证,客户端会认证服务器端身份,而服务器端不会去对客户 ...

  6. 权益保护-知识产权:知识产权(IP)百科

    ylbtech-权益保护-知识产权:知识产权(IP)百科 知识产权,也称其为“知识所属权”,指“权利人对其智力劳动所创作的成果和经营活动中的标记.信誉所依法享有的专有权利”,一般只在有限时间内有效.各 ...

  7. xunsearch进阶使用

    目录 设置分页 设置排序 读取文档结果 搜索结果高亮处理 获取数量 获取热门搜索词 获取相关搜索词 设置分页 $search->setLimit(5); // 设置返回结果为前 5 条 $sea ...

  8. MFC学习(一) MFC基础类及其层次结构

    从类CCmdTarget派生出绝大多数MFC中的类,其层次结构如下图: 从根类Cobject层层派生出绝大多数MFC中的类,层次结构如下图: MFC中重点类: CObject类是MFC的绝大部分类的基 ...

  9. linux下dmesg命令详解

    前言:     有时候想查看一下开机启动信息,可以通过这个命令查询. 1,命令格式 功能说明:显示开机信息.  语 法:dmesg [-cn][-s <缓冲区大小>]  补充说明:kern ...

  10. mysql跟踪执行的sql语句

    修改my.cnf配置文件 /usr/local/mysql/bin/mysql --verbose --help | grep -A 1 'Default options' Default optio ...