1. 在配置文件中id 和 name区别
<bean name="u" class="com.bczq.dao.impl.UserDAOImpl">
</bean>
<bean id="u" class="com.bczq.dao.impl.UserDAOImpl">
</bean>
上面两种基本一样,只是name可以包含特殊字符.一般情况下用name
2. pojo初始化时候设指定值
如有下面的一个类
public class UserDAOImpl{
private int daoId;
private String daoStatus;
public int getDaoId() {
return daoId;
}
public void setDaoId(int daoId) {
this.daoId = daoId;
}
public String getDaoStatus() {
return daoStatus;
}
public void setDaoStatus(String daoStatus) {
this.daoStatus = daoStatus;
}
}
则可以同过配置文件在初始化时候进行赋值
<bean name="userDAOImpl" class="com.bczq.dao.impl.UserDAOImpl">
<property name="daoId" value="8"></property>
<property name="daoStatus">
<value>good</value>
</property>
</bean>
3. bean 的scopes
<bean id="userService" class="com.bczq.service.UserService" scope="prototype">
</bean>
常用的值有如下:
1 singleton 单例
2.proptotype 每次创建新的对象
3.bean的 autowire 属性
<bean id="userService" class="com.bjsxt.service.UserService" scope="prototype" autowire="byType">
</bean>
1 no
不使用Autowire,引用关系显示声明,spring的reference也建议不用autoware,因为这会破坏模块关系的可读性,原文如下:
Note: as has already been mentioned, for larger applications, it is discouraged to use autowiring because it
removes the transparency and the structure from your collaborating classes.
2 byName
用名称关联,如果指定了这种模式,如
<bean id="userManagerTarget" class="com.mdcchina.jianghu.logic.UserManager" >
<property name="baseDAO"/>
</bean>
这样对于bean userManagerTarget的属性baseDAO,spring就会自动去引用同名的bean,也就是上面的声明和下面是等价的:
<bean id="userManagerTarget" class="com.mdcchina.jianghu.logic.UserManager" >
<property name="baseDAO">
<ref local="baseDAO"/>
</property>
</bean>
3 byType
和前面的byName类似的,就是这个属性会在整个beanFactory定义里找和这个属性一样的bean自动关联上,如果有2个或更多这个类型的bean在beanFactory的定义里,就直接抛异常了,如果没有,就什么都不发生,这个属性就是null,所以这个只适用与这个属性的类型有且只有一个同类的bean在spring里定义
4 constructor
这个的意思我没有确定的把握,不过感觉用途也不会大,好像是用构造函数新建一个属性类型的bean并关联上,reference原文是:
This is analogous to byType, but applies to constructor arguments. If there isn't exactly one
bean of the constructor argument type in the bean factory, a fatal error is raised.
5 autodetect
这个的意思好像是说自动决定用byType还是constructor方式,原文如下:
Chooses constructor or byType through introspection of the bean class. If a default
constructor is found, byType gets applied.
综上所述,感觉上只有byName比较实用一些,但是spring的reference还是不推荐在定义中用这个功能
4.bean的 lazy-init="true"属性
< beans default-lazy-init ="true" >
< bean lazy-init ="true" >
默认情况下会在容器启动时初始化bean, 但是我们可以指定Bean节点的 lazy-init="true" 来延迟初始化bean,这时候,只有第一次获取bean才会初始化bean。
分享到:
相关推荐
在本项目"spring的小demo"中,我们主要探讨的是如何将Spring框架与iBATIS(现在称为MyBatis)进行整合,以实现高效、灵活的数据访问。Spring是Java开发中的一个核心框架,它提供了依赖注入(DI)、面向切面编程(AOP...
Spring 框架基础知识点总结 Spring 框架是一种常用的 Java Web Application 框架,提供了许多有用的功能和特性,本文将对 Spring 框架的一些基础知识点进行总结。 一、Bean 标签的 id 属性 在 Spring 配置文件中...
24.Spring Cloud Config服务端配置细节(二)之加密解密 25.Spring Cloud Config客户端配置细节 26.Spring Cloud Bus之RabbitMQ初窥 27.Spring Cloud Bus整合RabbitMQ 28.Spring Cloud Bus整合Kafka 29.Spring ...
- **Spring Boot**:提供了一种简化Spring应用配置的方法,它隐藏了配置细节,使得开发者可以快速构建独立运行的Spring应用。 - **Spring Cloud**:建立在Spring Boot之上的一组工具和服务,用于构建云原生应用,...
`docs`文件夹包含Spring 5.3.9的官方文档,这是一份非常重要的资源,开发者可以通过它了解框架的所有细节。文档通常包括用户指南、参考手册、API文档以及各种教程。在学习和使用Spring时,这些文档将帮助我们理解...
#### 五、Spring Dynamic Modules的实施细节 1. **概念与语义**:Spring Dynamic Modules 定义了一系列概念和语义,包括Dynamic Module扩展Bundle和OSGi MANIFEST头条目等,这些都为开发者提供了清晰的指导。 2. **...
本篇文章将深入探讨如何通过Spring的注解方式实现AOP的细节。 首先,我们需要了解AOP的基本概念。AOP的核心是切面(Aspect),它封装了跨越多个对象的行为或责任。切点(Pointcut)定义了哪些方法会被通知(Advice...
要深入了解这个Spring Cloud项目,需要对Spring Boot、Spring Cloud、Eclipse以及Java编程有扎实的理解,并且通过查看源代码、配置文件以及运行和调试项目来探索其实现细节。在实际的开发环境中,项目通常会有更多的...
在本"elasticsearch+spring小案例"中,我们将探讨如何集成Elasticsearch 6.1.2版本与Spring框架,以便在Java应用中利用Elasticsearch的强大搜索功能。Elasticsearch是一个分布式、RESTful风格的搜索和数据分析引擎,...
本篇文章将深入探讨Spring的核心模块,包括`spring-context`、`spring-webmvc`、`spring-web`、`spring-beans`、`spring-core`、`spring-jdbc`、`spring-aop`、`spring-tx`、`spring-jms`以及`spring-expression`,...
标题“Learning Spring Boot 2.0”指出了本书的目标读者是希望通过Spring Boot 2.0版本进行...需要注意的是,上述内容是对给定文件信息的详细知识点分析,具体的书籍内容细节和深入知识点需要通过阅读全书才能获得。
《Spring in Action》和《精通Spring》是两本深度探讨Spring框架的重要书籍,它们为开发者提供了全面、深入的Spring技术指南。Spring是一个广泛使用的Java企业级应用开发框架,以其依赖注入(Dependency Injection, ...
### Spring入门十大问题详解 #### 一、Spring框架简介与学习资源 **知识点:** - **Spring框架**:是一款开源的轻量级Java EE应用程序框架,由Rod Johnson创建,主要目的是简化企业... - 注意区分大小写及拼写错误。
Spring框架通过其核心特性如依赖注入(Dependency Injection, DI)和面向切面编程(Aspect Oriented Programming, AOP),使得开发者能够更加专注于业务逻辑的编写,而不是被复杂的配置和技术细节所困扰。...
Spring.NET是一个开源的轻量级框架,它为.NET平台提供了依赖注入(DI)和面向方面的编程(AOP)功能,类似Java平台上的Spring...通过利用依赖注入和面向切面编程,开发者可以更专注于业务逻辑,而不是基础设施的细节。
现在,我们将深入探讨Spring 4.3中的核心概念和技术细节。 首先,让我们关注依赖注入(DI)。这是Spring的核心特性之一,允许我们通过配置或注解将对象之间的依赖关系明确地定义出来,而不是硬编码在代码中。在...
外文文献通常会提供原汁原味的技术细节,对于理解Spring的底层机制和设计理念非常有帮助。而中文译文则方便国内开发者阅读,减少了语言障碍,使我们能够迅速吸收国际上的技术精华。 首先,Spring的核心特性之一是...
尽管给出的文件信息没有提供实际的技术细节,但可以明确的是,《Spring技术内幕第2版》这本书必定会围绕Spring框架的设计哲学、组件结构、架构模式以及最佳实践等方面展开深入讨论,旨在帮助开发者不仅了解如何使用...
Spring Security 是一个强大的和高度可定制的身份验证和访问控制框架,专为Java应用程序设计。它在Spring生态系统中...通过阅读提供的`spring_security_3.1.pdf`文档,你可以更深入地学习这个框架的细节和实践应用。
10. **源码分析**:书中的源码可以辅助读者更好地理解Spring框架的实现细节,通过阅读和实验,加深对Spring的理解。 通过阅读《Spring in Action》中文版,开发者不仅可以学习到Spring的基本用法,还能深入了解其...