经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » Java相关 » Java » 查看文章
spring使用乱记
来源:cnblogs  作者:撸码识途  时间:2018/10/15 9:30:12  对本文有异议

装配方式

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  实例化的三种方式实现

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

  1. <beans xmlns="http://www.springframework.org/schema/beans"
  2. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="
  4. http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
  5. <!-- 关键部分 -->
  6. <bean id="bean1" class="com.spring.demo.Bean1"></bean>
  7. </beans>

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

  1. package com.spring.demo;
  2. public class Bean2Factory {
  3. public static Bean2 getBean2(){
  4. return new Bean2();
  5. }
  6. }

  

  1. <beans xmlns="http://www.springframework.org/schema/beans"
  2. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="
  4. http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
  5. <!-- 关键部分 -->
  6. <bean id="bean2" class="com.spring.demo.Bean2Factory" factory-method="getBean2"></bean>
  7. </beans>

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

  1. package com.spring.demo;
  2. public class Bean3Factory {
  3. public Bean3 getBean3(){
  4. return new Bean3();
  5. }
  6. }

  

  1. <beans xmlns="http://www.springframework.org/schema/beans"
  2. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="
  4. http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
  5. <!-- 关键部分 -->
  6. <bean id="bean3factory" class="com.spring.demo.Bean3Factory"></bean>
  7. <bean id="bean3" factory-bean="bean3factory" factory-method="getBean3"></bean>
  8. </beans>

  

 

IOC的三种实现方式

1.接口注入

  1. public class ClassA {
  2. private InterfaceB clzB;
  3. public void doSomething() {
  4. Ojbect obj = Class.forName(Config.BImplementation).newInstance();
  5. clzB = (InterfaceB)obj;
  6. clzB.doIt();
  7. }
  8. ……
  9. }

2.setter方法注入

3.构造器注入

 

bean的作用域

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

 

 

 

 

 

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号