spring使用乱记

装配方式

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属性来指定.

 

猜你喜欢

转载自www.cnblogs.com/tinyj/p/9788749.html
今日推荐