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使用乱记
-
PHP7 使用资源包裹第三方扩展的实现及其源码解读 php7.0 php7 编译安装 apache php7.0 配置
-
Hello、大家好,使用phalcon如何床架一个项目?
-
使用CSS3的animation steps属性实现跳帧动画
-
Cocoa代码风格指南之使用规范(四)
-
Vue使用echarts可视化组件的方法
-
CocoaPods的使用——pod install pod install --repo-update pod update pod update --repo-update
-
使用#import #include与@class相关知识点
-
php 三元运算符的使用介绍,php运算符_PHP教程
-
php pthreads 多线程扩展的使用:一个较为稳定例子。