- 浏览: 237173 次
- 性别:
- 来自: 西安
文章分类
最新评论
-
operating...mydream:
mcreturn 写道我是按你这么配置的 做均衡测试的测试的 ...
Apache + Tomcat集群配置详解 -
u011938035:
谢谢。
第四章:小朱笔记hadoop之源码分析-conf分析 -
slipper-jay:
ssh无密码登陆失败Slave执行$chmod 700 ~/. ...
第一章:小朱笔记hadoop之环境配置以及集群部署-集群环境配置 -
slipper-jay:
文思敏捷,才华横溢 老大!
第一章:小朱笔记hadoop之环境配置以及集群部署-集群环境配置 -
huashuizhuhui:
dacoolbaby 写道楼主最后一段是在推销自己吗?哈~~ ...
小朱笔记之hadoop应用实战、源码分析-目录
在Spring中,有五种autowire模式:byName,byType,constructor,autodetect,no;
下面分别对其进行介绍
1 byName:这个很简单,直接按照名字进行查找
Java代码
1. package com.jnotnull;
2.
3. public class HelloWorld {
4. public String message = null;
5.
6. public void init(){
7. this.message = "HelloWorld";
8. }
9.
10. public String getMessage() {
11. return message;
12. }
13.
14. public void setMessage(String message) {
15. this.message = message;
16. }
17.
18. }
package com.jnotnull;
public class HelloWorld {
public String message = null;
public void init(){
this.message = "HelloWorld";
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
config.xml
Java代码
1. <?xml version="1.0" encoding="UTF-8"?>
2. <!DOCTYPE beans Public "-//SPRING//DTD BEAN//EN"
3. "http://www.springframework.org/dtd/spring-beans.dtd">
4. <beans>
5. <bean id ="HelloWorld" class="com.jnotnull.HelloWorld" autowire="byName">
6. <property name ="message">
7. <value>HelloWorld</value>
8. </property>
9. <bean>
10. </beans>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans Public "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id ="HelloWorld" class="com.jnotnull.HelloWorld" autowire="byName">
<property name ="message">
<value>HelloWorld</value>
</property>
<bean>
</beans>
2 byType:按照类型进行查找,如果没有找到匹配的,则什么也没有改变,同时可以通过设置dependency-check="objects"属性来在没有匹配到的情况下抛出这种错误。
Java代码
1. package com.jnotnull;
2.
3. public class HelloWorld {
4. public String message = null;
5.
6. public void init(){
7. this.message = "HelloWorld";
8. }
9.
10. public String getMessage() {
11. return message;
12. }
13.
14. public void setMessage(String message) {
15. this.message = message;
16. }
17.
18. }
package com.jnotnull;
public class HelloWorld {
public String message = null;
public void init(){
this.message = "HelloWorld";
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
config.xml
Java代码
1. <?xml version="1.0" encoding="UTF-8"?>
2. <!DOCTYPE beans Public "-//SPRING//DTD BEAN//EN"
3. "http://www.springframework.org/dtd/spring-beans.dtd">
4. <beans>
5. <bean id ="HelloWorld" class="com.jnotnull.HelloWorld" autowire="byType">
6. <property name ="message">
7. <value>HelloWorld</value>
8. </property>
9. <bean>
10. </beans>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans Public "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id ="HelloWorld" class="com.jnotnull.HelloWorld" autowire="byType">
<property name ="message">
<value>HelloWorld</value>
</property>
<bean>
</beans>
3 constructor:直接根据构造函数进行匹配
Java代码
1. package com.jnotnull;
2.
3. public class HelloWorld {
4. public String message = null;
5.
6. public void init(){
7. this.message = "HelloWorld";
8. }
9.
10. public String getMessage() {
11. return message;
12. }
13.
14. public void setMessage(String message) {
15. this.message = message;
16. }
17.
18. }
package com.jnotnull;
public class HelloWorld {
public String message = null;
public void init(){
this.message = "HelloWorld";
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
config.xml
Java代码
1. <?xml version="1.0" encoding="UTF-8"?>
2. <!DOCTYPE beans Public "-//SPRING//DTD BEAN//EN"
3. "http://www.springframework.org/dtd/spring-beans.dtd">
4. <beans>
5. <bean id ="HelloWorld" class="com.jnotnull.HelloWorld" autowire="constrator">
6. <property name ="message">
7. <value>HelloWorld</value>
8. </property>
9. <bean>
10. </beans>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans Public "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id ="HelloWorld" class="com.jnotnull.HelloWorld" autowire="constrator">
<property name ="message">
<value>HelloWorld</value>
</property>
<bean>
</beans>
4 autodetect:先按constructor匹配,再按byType匹配
Java代码
1. package com.jnotnull;
2.
3. public class HelloWorld {
4. public String message = null;
5.
6. public void init(){
7. this.message = "HelloWorld";
8. }
9.
10. public String getMessage() {
11. return message;
12. }
13.
14. public void setMessage(String message) {
15. this.message = message;
16. }
17.
18. }
package com.jnotnull;
public class HelloWorld {
public String message = null;
public void init(){
this.message = "HelloWorld";
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
config.xml
Java代码
1. <?xml version="1.0" encoding="UTF-8"?>
2. <!DOCTYPE beans Public "-//SPRING//DTD BEAN//EN"
3. "http://www.springframework.org/dtd/spring-beans.dtd">
4. <beans>
5. <bean id ="HelloWorld" class="com.jnotnull.HelloWorld" autowire="autodetect">
6. <property name ="message">
7. <value>HelloWorld</value>
8. </property>
9. <bean>
10. </beans>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans Public "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id ="HelloWorld" class="com.jnotnull.HelloWorld" autowire="autodetect">
<property name ="message">
<value>HelloWorld</value>
</property>
<bean>
</beans>
5 no:不用任何模式进行匹配,这个也是默认的匹配模式
Java代码
1. package com.jnotnull;
2.
3. public class HelloWorld {
4. public String message = null;
5.
6. public void init(){
7. this.message = "HelloWorld";
8. }
9.
10. public String getMessage() {
11. return message;
12. }
13.
14. public void setMessage(String message) {
15. this.message = message;
16. }
17.
18. }
package com.jnotnull;
public class HelloWorld {
public String message = null;
public void init(){
this.message = "HelloWorld";
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
config.xml
Java代码
1. <?xml version="1.0" encoding="UTF-8"?>
2. <!DOCTYPE beans Public "-//SPRING//DTD BEAN//EN"
3. "http://www.springframework.org/dtd/spring-beans.dtd">
4. <beans>
5. <bean id ="HelloWorld" class="com.jnotnull.HelloWorld" autowire="no">
6. <property name ="message">
7. <value>HelloWorld</value>
8. </property>
9. <bean>
10. </beans>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans Public "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id ="HelloWorld" class="com.jnotnull.HelloWorld" autowire="no">
<property name ="message">
<value>HelloWorld</value>
</property>
<bean>
</beans>
下面分别对其进行介绍
1 byName:这个很简单,直接按照名字进行查找
Java代码
1. package com.jnotnull;
2.
3. public class HelloWorld {
4. public String message = null;
5.
6. public void init(){
7. this.message = "HelloWorld";
8. }
9.
10. public String getMessage() {
11. return message;
12. }
13.
14. public void setMessage(String message) {
15. this.message = message;
16. }
17.
18. }
package com.jnotnull;
public class HelloWorld {
public String message = null;
public void init(){
this.message = "HelloWorld";
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
config.xml
Java代码
1. <?xml version="1.0" encoding="UTF-8"?>
2. <!DOCTYPE beans Public "-//SPRING//DTD BEAN//EN"
3. "http://www.springframework.org/dtd/spring-beans.dtd">
4. <beans>
5. <bean id ="HelloWorld" class="com.jnotnull.HelloWorld" autowire="byName">
6. <property name ="message">
7. <value>HelloWorld</value>
8. </property>
9. <bean>
10. </beans>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans Public "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id ="HelloWorld" class="com.jnotnull.HelloWorld" autowire="byName">
<property name ="message">
<value>HelloWorld</value>
</property>
<bean>
</beans>
2 byType:按照类型进行查找,如果没有找到匹配的,则什么也没有改变,同时可以通过设置dependency-check="objects"属性来在没有匹配到的情况下抛出这种错误。
Java代码
1. package com.jnotnull;
2.
3. public class HelloWorld {
4. public String message = null;
5.
6. public void init(){
7. this.message = "HelloWorld";
8. }
9.
10. public String getMessage() {
11. return message;
12. }
13.
14. public void setMessage(String message) {
15. this.message = message;
16. }
17.
18. }
package com.jnotnull;
public class HelloWorld {
public String message = null;
public void init(){
this.message = "HelloWorld";
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
config.xml
Java代码
1. <?xml version="1.0" encoding="UTF-8"?>
2. <!DOCTYPE beans Public "-//SPRING//DTD BEAN//EN"
3. "http://www.springframework.org/dtd/spring-beans.dtd">
4. <beans>
5. <bean id ="HelloWorld" class="com.jnotnull.HelloWorld" autowire="byType">
6. <property name ="message">
7. <value>HelloWorld</value>
8. </property>
9. <bean>
10. </beans>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans Public "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id ="HelloWorld" class="com.jnotnull.HelloWorld" autowire="byType">
<property name ="message">
<value>HelloWorld</value>
</property>
<bean>
</beans>
3 constructor:直接根据构造函数进行匹配
Java代码
1. package com.jnotnull;
2.
3. public class HelloWorld {
4. public String message = null;
5.
6. public void init(){
7. this.message = "HelloWorld";
8. }
9.
10. public String getMessage() {
11. return message;
12. }
13.
14. public void setMessage(String message) {
15. this.message = message;
16. }
17.
18. }
package com.jnotnull;
public class HelloWorld {
public String message = null;
public void init(){
this.message = "HelloWorld";
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
config.xml
Java代码
1. <?xml version="1.0" encoding="UTF-8"?>
2. <!DOCTYPE beans Public "-//SPRING//DTD BEAN//EN"
3. "http://www.springframework.org/dtd/spring-beans.dtd">
4. <beans>
5. <bean id ="HelloWorld" class="com.jnotnull.HelloWorld" autowire="constrator">
6. <property name ="message">
7. <value>HelloWorld</value>
8. </property>
9. <bean>
10. </beans>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans Public "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id ="HelloWorld" class="com.jnotnull.HelloWorld" autowire="constrator">
<property name ="message">
<value>HelloWorld</value>
</property>
<bean>
</beans>
4 autodetect:先按constructor匹配,再按byType匹配
Java代码
1. package com.jnotnull;
2.
3. public class HelloWorld {
4. public String message = null;
5.
6. public void init(){
7. this.message = "HelloWorld";
8. }
9.
10. public String getMessage() {
11. return message;
12. }
13.
14. public void setMessage(String message) {
15. this.message = message;
16. }
17.
18. }
package com.jnotnull;
public class HelloWorld {
public String message = null;
public void init(){
this.message = "HelloWorld";
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
config.xml
Java代码
1. <?xml version="1.0" encoding="UTF-8"?>
2. <!DOCTYPE beans Public "-//SPRING//DTD BEAN//EN"
3. "http://www.springframework.org/dtd/spring-beans.dtd">
4. <beans>
5. <bean id ="HelloWorld" class="com.jnotnull.HelloWorld" autowire="autodetect">
6. <property name ="message">
7. <value>HelloWorld</value>
8. </property>
9. <bean>
10. </beans>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans Public "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id ="HelloWorld" class="com.jnotnull.HelloWorld" autowire="autodetect">
<property name ="message">
<value>HelloWorld</value>
</property>
<bean>
</beans>
5 no:不用任何模式进行匹配,这个也是默认的匹配模式
Java代码
1. package com.jnotnull;
2.
3. public class HelloWorld {
4. public String message = null;
5.
6. public void init(){
7. this.message = "HelloWorld";
8. }
9.
10. public String getMessage() {
11. return message;
12. }
13.
14. public void setMessage(String message) {
15. this.message = message;
16. }
17.
18. }
package com.jnotnull;
public class HelloWorld {
public String message = null;
public void init(){
this.message = "HelloWorld";
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
config.xml
Java代码
1. <?xml version="1.0" encoding="UTF-8"?>
2. <!DOCTYPE beans Public "-//SPRING//DTD BEAN//EN"
3. "http://www.springframework.org/dtd/spring-beans.dtd">
4. <beans>
5. <bean id ="HelloWorld" class="com.jnotnull.HelloWorld" autowire="no">
6. <property name ="message">
7. <value>HelloWorld</value>
8. </property>
9. <bean>
10. </beans>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans Public "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id ="HelloWorld" class="com.jnotnull.HelloWorld" autowire="no">
<property name ="message">
<value>HelloWorld</value>
</property>
<bean>
</beans>
发表评论
-
Spring事务详解【强烈推荐、深入讲解spring事物】
2011-08-04 22:58 1564Spring事务详解【强烈推荐、深入讲解spring事物】 入 ... -
Spring提供的线程池支持
2011-04-05 18:02 1975核心提示:一旦企业应用越来越复杂时(比如,基于流程服务器的EI ... -
Spring中的Advice(通知)
2011-04-05 11:27 1437Spring中提供了五种类型 ... -
spring知识总结
2011-04-05 11:26 1070bean属性及构造器参数:直接量(基本类型、Strings类型 ... -
Spring XML配置的12个技巧
2011-04-05 10:28 923Spring是一个强有力的java程序框架,其被广泛应用于 ... -
在spring+hibernate中,只读事务是如何被优化的。
2011-04-02 22:44 1588解惑:在spring+hibernate中,只读事务是如何被优 ... -
Spring @Transactional
2011-04-02 21:46 48301. 在需要事务管理的地方加@Transactional 注解 ... -
Spring高级进阶
2011-04-02 12:39 1459Java代码 1. <?xml version= ... -
Spring中Bean的4种依赖检查模式
2011-04-02 12:37 1452在上面的一个例子中,我们看到,通过设立dependency-c ... -
声明式事务管理
2011-04-02 12:36 1544我们一下说的都是spring 整合hibernate的事物配置 ... -
SPRING_bean的生命周期
2011-04-02 12:35 1033Spring bean生命周期 在传统的Java应用中,Bea ... -
spring 任务调度 Quartz 表达式
2011-04-02 12:34 1121字段 允许值 允许的特殊字符 秒 0-59 , - * / ... -
Spring 2.0版本支持扩展XML配置
2011-04-02 12:33 866Spring 2.0版本支持扩展XML配置,着实兴奋了一下,在 ...
相关推荐
依赖注入是一种设计模式,它允许我们把对象的依赖关系交给外部容器管理,而不是由对象内部自行创建和管理。Spring框架通过DI实现了这一模式,使得对象间的依赖关系更加清晰,降低了代码的复杂性。 接下来,我们来看...
本文将详细介绍Spring框架中的五种自动装配模式:`no`、`byName`、`byType`、`constructor`以及`autodetect`,帮助开发者更好地理解和应用这些模式。 #### 二、自动装配模式概览 自动装配是指Spring容器根据一定的...
Spring提供了五种自动装配模式: - **No**:默认模式,不进行自动装配,完全依赖于手动配置。 - **byName**:根据bean属性的名称来寻找匹配的bean进行自动装配。 - **byType**:根据bean属性的类型来寻找匹配的bean...
在Spring框架中,依赖注入(Dependency Injection,简称DI)是一种重要的设计模式,它使得对象之间的耦合度降低,提高了代码的可测试性和可维护性。本篇主要介绍Spring中的三种注入方式,着重讲解在"Spring三种注入...
spring-3 演示使用动态代理模式实现面向切面编程 使用注解方式进行AOP编程及使用配置xml方式进行AOP编程 spring-4 演示了spring与JDBCTemplate配合使用 spring-5 演示了声明式事务及使用xml配置文件处理事务
`autowire`有多种模式: 1. `byName`:Spring会查找与bean属性名相同的bean,并自动注入。 2. `byType`:Spring会查找类型匹配的bean,并注入第一个找到的实例。 3. `constructor`:Spring会寻找合适的构造函数,...
在压缩包文件名称“spring_0700_IOC_Autowire”中,“IOC”代表“Inversion of Control”,即控制反转,它是Spring的核心概念之一,自动装配是IOC的一种实现方式。这个文件可能包含了关于Spring自动装配的教程材料,...
在Spring中,属性参考是一种在配置文件中引用其他bean的方式。例如,在`HelloBean`类中,我们定义了两个属性:`helloWord`和`date`。为了将这些属性设置到相应的bean中,我们可以在Spring的XML配置文件中使用`<ref>`...
在Spring的XML配置文件中,可以通过`<beans>`标签的`autowire`属性来全局设置自动装配策略,或者在单个`<bean>`标签中通过`autowire`属性指定某一个bean的自动装配方式。 4. 使用注解进行自动装配 Spring 2.5引入了...
Spring框架常见问题解析...Autowire 是 Spring 的自动装配机制,通过指定 autowire 属性,可以让容器为受管 JavaBean 自动注入依赖对象。Autowire 有六种方式:No、byName、byType、constructor、autodetect、default。
在XML配置中,我们可以使用`autowire`属性实现自动装配,让Spring根据类型或名称自动寻找依赖的Bean。例如: ```xml <bean id="exampleBean" class="com.example.ExampleBean" autowire="byType"/> ``` 4. **...
可以通过`autowire`属性设置自动装配模式。 11. 依赖检查(Dependency Checking):通过配置`<dependency-check>`元素来检查Bean是否需要其所有依赖项。 12. 定义IoC容器管理的JavaBean的生命周期回调方法:通过`...
综上所述,Spring的IOC容器是通过控制反转和依赖注入实现的一种高级组件管理机制,它极大地简化了Java应用的复杂性,促进了松耦合和可测试性的提升。理解并熟练运用Spring IOC容器是掌握Spring框架的关键。通过阅读...
Spring框架支持自动装配,这是一种简化依赖注入的方式。在XML配置中,可以通过`autowire`属性来指定bean之间的依赖关系。具体来说: - **No**:不启用自动装配。这是默认值,需要手动指定依赖注入。 - **By Name**...
<bean id="WebSocketConfig" class="org.springframework.web.socket.config.annotation.WebSocketConfigurer" autowire="byType"> <bean id="serverEndpointExporter" class="org.springframework.web.socket....
有五种模式: - `no`:不自动装配,所有依赖都需手动配置。 - `byName`:根据属性名称自动装配。 - `byType`:根据属性类型自动装配。如果有多个匹配,会报错。 - `constructor`:根据构造函数参数类型自动装配...
15. Bean的autowire属性:Spring的autowire属性可以自动装配Bean,它能够将任何Java对象和Java组件视为Bean进行管理,但不包括EJB组件。 以上内容详细解释了Spring框架中的关键概念,包括AOP、依赖注入、事务管理、...
Spring使用两种方式实现DI:构造器注入和setter注入。在源码中,可以追踪到`AutowireCapableBeanFactory`类中的`autowire`方法,这是处理自动装配的关键。 然后,Spring的AOP模块允许开发者定义横切关注点,如日志...