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

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. 将Nagios监控信息存入Mysql

    一.NDOUtils安装需求: nagios:安装方法:http://www.cnblogs.com/Richardzhu/p/3340638.html mysql:源码安装方法:http://www ...

  2. 如何查看Python的内置函数

    经常调用的时候不知道python当前版本的内置函数是哪些,可以用下面的指令查看: C:\Users\Administrator>python Python 2.7.11 (v2.7.11:6d1 ...

  3. 使用mysql profiling功能剖析单条查询

    5.1版本开始引入show profile剖析单条语句功能,支持show profiles和show profile语句,参数have_profiling;控制是否开启: 查看是否支持这个功能(查询为 ...

  4. 实现Fragment的切换和ViewPager自动循环设置切换时间

    1.FragmentActivity与Fragment之间的用法 2.实现ViewPager自动轮换,设置移动的时间 通过反射获取mScrooler这个对象: Field mScroller; mSc ...

  5. 周赛-KIDx's Pagination 分类: 比赛 2015-08-02 08:23 7人阅读 评论(0) 收藏

    KIDx's Pagination Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) S ...

  6. Uva 10562 看图写树

    题目链接:https://uva.onlinejudge.org/external/105/10562.pdf 紫书P170 直接在二维数组上做DFS,用的fgets函数读入数据,比较gets函数安全 ...

  7. N-gram介绍

    在实际应用中,我们经常需要解决这样一类问题:如何计算一个句子的概率?如: 机器翻译:P(high winds tonite) > P(large winds tonite) 拼写纠错:P(abo ...

  8. SQL 中ROLLUP 用法

    SQL 中ROLLUP 用法 ROLLUP 运算符生成的结果集类似于 CUBE 运算符生成的结果集. 下面是 CUBE 和 ROLLUP 之间的具体区别: CUBE 生成的结果集显示了所选列中值的所有 ...

  9. Intent官方教程(4)用Intent构造应用选择框

    Forcing an app chooser When there is more than one app that responds to your implicit intent, the us ...

  10. Win7\xp添加虚拟网Microsoft Loopback Adapter

    安装Microsoft Loopback Adapter 1 依次找到 打开“开始菜单”---“控制面板”---“添加硬件”的菜单选项如下图所示. 步骤阅读 2 如果没有“添加硬件”当然你也可以直接, ...