我们知道对象是交给容器来管理的那么

init() destroy():可以在bean配置中设置对象初识化前执行和销毁后执行

int-delay=""表示是否延迟实例化即容器实例时还是获取bean时实例化

bean 中scope=“” 范围属性表示单例或多个

用来指定bean的作用域

singleton---单例  只创建一个对象。

prototype---原型  想创建多少个就创建多少了。

request---针对Web项目,不同的请求创建单独的Bean对象,同一个请求共享一个Bean。

session---针对Web项目,不同的会话创建单独的Bean对象,同一个会话共享一个Bean。

一:采用xml注入配置

1对象注入<bean id="" class=""></bean>

2类中注入对象分两种方式

2.1set注入bean

<bean ...>

<property name="" ref="对应bean"> //在类中属性对应的对象引用需有set()方法;

</bean>

2.2构造器参数注入bean(类中构造器将需要的注入相关内容做参数)

<bean...>

<constructor index=0 type=注入的类型 ref=注入的bean />//参数的位置,对应的包名类名,id

<constructor .../> //参数如果是基本类型直接用 index='' value=""

3注入的是基本类型,将ref改为value=""

4集合注入有对应集合标签 如set list pro map

<property name="set">

<set>...不同集合赋值有差异(value value pro: key entry :key /value。。。</set>

</property>

二,采用注解注入(@resource 默认按名称找不到按类型  @autowired 默认类型)

首先配置xml文档命名空间,以及添加标签<context:annotatiion-config/> 这样隐式的注册了处理分析注解的解释器,还需添加注解包。

1.注解种类比较jdk有支持的注解 spring 也有支持的注解,可以使用jdk不依赖框架低耦合注解@resource

2.注解可以在属性前,也可在set方法前。可以根据类型或者名称寻找xml中的bean.(貌似代码比较简洁了而xml配置不要再那样去嵌套配置了)

原理(大概是:首先注解可以定义存在周期譬如运行期,可以注解标注位置譬如字段属性上方法上,通过遍历所有的bean,然后遍历bean中所有属性和方法,找到所对应的注解然后做相应的处理,再到xml文件中寻找匹配的bean实现注入)

三  以上都属于手动装配另一种属于自动装配:(auotwire=“” 有个按类型手动装配注解autowired有些相似)

(只需要bean 中添加属性参数,代码不需要做处理)

在<bean id="" class=""  autowire="bytype"...>

bytype:按类型 找到多个抛出异常,没找到注入null

byname:按名称,没找到也是null

constructor:按构造器参数注入bean,没找到炮异常。

autodetect:自动检测如果是默认构造器采用bytype,参数构造器采用constructor方式。

(听说实现同一个接口bean会被视为同一类型不能被按类型注入待测试)

四采用自动扫描注入:(这种方式很好狠强大)

1.首先xml中需要添加命名空间,同时添加<context:componet-scan basebage="包下包括子包中的类">

将扫描包下类中并且有@service @repository @controller @conponent注解的类。(貌似只是一种可读性一种分类标记,之间没有实际不同意义)

2.默认的bean 名称为类名首字母小写的名称。

3.类上同时添加注解@Scope("prototype")可以修改作用域

4.在初始化方法上添加

@postConstruct

init()

@preDestroy

destroy()

spring注入简记的更多相关文章

  1. Spring注入JPA+JPA事务管理

    本例实现的是Spring注入JPA 和 使用JPA事务管理.JPA是sun公司开发的一项新的规范标准.在本质上来说,JPA可以看作是Hibernate的一个子集:然而从功能上来说,Hibernate是 ...

  2. Spring注入中byType和byName的总结

    1.首先,区分清楚什么是byType,什么是byName. <bean id="userServiceImpl" class="cn.com.bochy.servi ...

  3. spring注入参数详解

    spring注入参数详解 在Spring配置文件中, 用户不但可以将String, int等字面值注入到Bean中, 还可以将集合, Map等类型的数据注入到Bean中, 此外还可以注入配置文件中定义 ...

  4. 线程中无法实例化spring注入的服务的解决办法

    问题描述 在Java Web应用中采用多线程处理数据,发现Spring注入的服务一直报NullPointerException.使用注解式的声明@Resource和XML配置的bean声明,都报空指针 ...

  5. FlushMode属性与transaction(spring注入的事务)

    一.参见hibernate的api http://tool.oschina.net/apidocs/apidoc?api=hibernate-3.6.10 http://tool.oschina.ne ...

  6. 项目中Spring注入报错小结

    之前在做单元测试时采用注解方式进行service对象的注入,但运行测试用例时对象要注入的service对象总是空的,检查下spring配置文件,我要配置的bean类xml文件已经包含到spring要加 ...

  7. 在静态方法里调用spring注入的方法

    在静态方法里直接调用非静态方法是不行的. 那如何调用spring注入的方法呢? @Component public class AutoLoginUtil {     @Autowired     p ...

  8. Spring注入

    Spring注入 Spring注入是指在启动Spring容器加载bean配置的时候,完成对变量的赋值行为. 常用的两种注入方式: setter注入 构造注入 <?xml version=&quo ...

  9. 基于配置文件的Spring注入

    基于配置文件的Spring注入 1.依赖注入的概述 依赖注入指的是通过Spring配置文件的方式创建对象时,直接通过配置的方式将数据注入到该对象的标量类型属性,并从Spring容器中获取指定对象注入到 ...

随机推荐

  1. 解决php与IIs的冲突

    ISS与apache 服务器的默认端口号为 :80: 在浏览时,无法访问到. 可以将 apache的端口 改变即可: Apache安装好后,在其安装目录下的conf文件夹内会有httpd.conf这样 ...

  2. ACM题目————小A的计算器

    Description 以往的操作系统内部的数据表示都是二进制方式,小A新写了一个操作系统,系统内部的数据表示为26进制,其中0-25分别由a-z表示.  现在小A要在这个操作系统上实现一个计算器,这 ...

  3. 八大排序算法之二希尔排序(Shell Sort)

    希尔排序是1959 年由D.L.Shell 提出来的,相对直接排序有较大的改进.希尔排序又叫缩小增量排序 基本思想: 先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录 ...

  4. c# UDP广播

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  5. 证码识别--type1

                                                                                 证码识别--type1 ​从最简单的开始.主要 ...

  6. 递推,动态规划(DP),字符串处理,最佳加法表达式

    看了一些资料,竟然发现连百度文库也有错误的地方,在这里吐槽一下题目大意:http://wenku.baidu.com/link?url=DrUNNm19IqpPNZjKPX4Jg6shJiK_Nho6 ...

  7. 创建Linux swap

    创建SWAP文件(下面指定的是8G容量,系统物理内存8G): dd if=/dev/zero of=/data/swapfile bs=1M count=8192 格式化该文件 mkswap swap ...

  8. [转]varchar(n),nvarchar(n) 长度、性能、及所占空间分析

    varchar(n),nvarchar(n) 中的n怎么解释: nvarchar(n)最多能存n个字符,不区分中英文. varchar(n)最多能存n个字节,一个中文是两个字节. 所占空间: nvar ...

  9. 解决maven的“Dynamic Web Module 3.0 requires Java 1.6 or newer.”错误

    需要添加一个插件,在build标签中添加 <plugins> <plugin> <groupId>org.apache.maven.plugins</grou ...

  10. 配置 ASP.NET Linux( CentOS 6.5 ) 运行环境 MONO + Jexus

    1.更新系统 在命令行下执行 yum –y update 2.安装必要的软件 yum -y install gcc gcc-c++ bison pkgconfig glib2-devel gettex ...