欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

spring使用乱记

程序员文章站 2024-01-15 09:20:46
装配方式 1.XML方式的自动装配 设置:元素的:autowire属性 autowire属性:让spring按照一定的方式自己去找合适的对象,并完成DI - de ......

装配方式

1.xml方式的自动装配
设置:<bean />元素的:autowire属性
<bean id="somebean" class="somebean全限定名"  autowire="bytype"/>
 
autowire属性:让spring按照一定的方式自己去找合适的对象,并完成di
  - default:不要自动注入
  - no:不要自动注入
  - byname:按照名字注入(按照属性的名字在spring中找bean) factory.getbean("属性的名字")
  - bytype:按照依赖对象的类型注入(factory.getbean(属性的类型))
  - constructor:按照对象的构造器上面的参数类型注入
 
注意:
  1,如果按照byname自动注入,要求所有的属性名字和id的名字必须保证一种规范的命名方式;
  2,如果按照bytype注入,如果spring中同一个类型有多个实例-->报bean不是唯一类型错误;
 
2.注解方式的自动装配
在spring中使用注解来完成di操作,我们称之为注解自动装配,存在两种用法.
   一:使用spring框架自身提供的标签:autowired
   二:使用javaee规范提供的标签:resource
 
3.xml方式的手动装配
通过什么方式来给bean注入:
   1):通过bean对象的setter方法,属性注入.   使用<property  name=”属性名称”  >   推荐.
   2):通过bean类的构造器来设置,构造注入.  使用<constructor-arg.../>
 
注入的类型有哪些:
   1):简单数据类型.    使用value.
   2):复合数据类型.    使用ref.
   3):集合数据类型.    使用集合的元素.
 
 
 

bean  实例化的三种方式实现

第一种:使用类的无参数构造创建

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"
    xsi:schemalocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
 
	<!-- 关键部分 -->
	<bean id="bean1" class="com.spring.demo.bean1"></bean>
 
</beans>

 第二种:使用静态工厂创建  

package com.spring.demo;
 
public class bean2factory {
	public static bean2 getbean2(){
		return new bean2();
	}
}

  

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"
    xsi:schemalocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
 
	<!-- 关键部分 -->
	<bean id="bean2" class="com.spring.demo.bean2factory" factory-method="getbean2"></bean>
	
 
</beans>

第三种:使用实例工厂创建

package com.spring.demo;
 
public class bean3factory {
	public bean3 getbean3(){
		return new bean3();
	}
}

  

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"
    xsi:schemalocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
 
	<!-- 关键部分 -->
	<bean id="bean3factory" class="com.spring.demo.bean3factory"></bean>
	<bean id="bean3" factory-bean="bean3factory" factory-method="getbean3"></bean>
	
 
</beans>

  

 

ioc的三种实现方式

1.接口注入

public class classa {  
  private interfaceb clzb;  
  public void dosomething() {  
    ojbect obj = class.forname(config.bimplementation).newinstance();  
    clzb = (interfaceb)obj;  
    clzb.doit();   
  }  
……  
} 

2.setter方法注入

3.构造器注入

 

bean的作用域

bean的作用域:指的是一个bean对象可以存活多久,通过bean元素的scope属性来指定.

 spring使用乱记