`
编程足球
  • 浏览: 257758 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

Spring 小细节

    博客分类:
  • SSH
 
阅读更多
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的小demo"中,我们主要探讨的是如何将Spring框架与iBATIS(现在称为MyBatis)进行整合,以实现高效、灵活的数据访问。Spring是Java开发中的一个核心框架,它提供了依赖注入(DI)、面向切面编程(AOP...

    spring6小细节.docx

    Spring 框架基础知识点总结 Spring 框架是一种常用的 Java Web Application 框架,提供了许多有用的功能和特性,本文将对 Spring 框架的一些基础知识点进行总结。 一、Bean 标签的 id 属性 在 Spring 配置文件中...

    Spring boot,springCloud精选视频教程

    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 cloud、spring boot Alibaba以及配套组件版本关系

    - **Spring Boot**:提供了一种简化Spring应用配置的方法,它隐藏了配置细节,使得开发者可以快速构建独立运行的Spring应用。 - **Spring Cloud**:建立在Spring Boot之上的一组工具和服务,用于构建云原生应用,...

    spring-5.3.9-dist.zip(spring-framework-5.3.9)

    `docs`文件夹包含Spring 5.3.9的官方文档,这是一份非常重要的资源,开发者可以通过它了解框架的所有细节。文档通常包括用户指南、参考手册、API文档以及各种教程。在学习和使用Spring时,这些文档将帮助我们理解...

    Spring 动态模型(Spring Dynamic Modules)参考指南

    #### 五、Spring Dynamic Modules的实施细节 1. **概念与语义**:Spring Dynamic Modules 定义了一系列概念和语义,包括Dynamic Module扩展Bundle和OSGi MANIFEST头条目等,这些都为开发者提供了清晰的指导。 2. **...

    使用Spring的注解方式实现AOP的细节

    本篇文章将深入探讨如何通过Spring的注解方式实现AOP的细节。 首先,我们需要了解AOP的基本概念。AOP的核心是切面(Aspect),它封装了跨越多个对象的行为或责任。切点(Pointcut)定义了哪些方法会被通知(Advice...

    spring-cloud项目

    要深入了解这个Spring Cloud项目,需要对Spring Boot、Spring Cloud、Eclipse以及Java编程有扎实的理解,并且通过查看源代码、配置文件以及运行和调试项目来探索其实现细节。在实际的开发环境中,项目通常会有更多的...

    elasticsearch+spring小案例

    在本"elasticsearch+spring小案例"中,我们将探讨如何集成Elasticsearch 6.1.2版本与Spring框架,以便在Java应用中利用Elasticsearch的强大搜索功能。Elasticsearch是一个分布式、RESTful风格的搜索和数据分析引擎,...

    spring源码包.zip

    本篇文章将深入探讨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

    标题“Learning Spring Boot 2.0”指出了本书的目标读者是希望通过Spring Boot 2.0版本进行...需要注意的是,上述内容是对给定文件信息的详细知识点分析,具体的书籍内容细节和深入知识点需要通过阅读全书才能获得。

    spring in action & 精通spring

    《Spring in Action》和《精通Spring》是两本深度探讨Spring框架的重要书籍,它们为开发者提供了全面、深入的Spring技术指南。Spring是一个广泛使用的Java企业级应用开发框架,以其依赖注入(Dependency Injection, ...

    Spring入门十大问题

    ### Spring入门十大问题详解 #### 一、Spring框架简介与学习资源 **知识点:** - **Spring框架**:是一款开源的轻量级Java EE应用程序框架,由Rod Johnson创建,主要目的是简化企业... - 注意区分大小写及拼写错误。

    精通spring - Mastering Spring.pdf

    Spring框架通过其核心特性如依赖注入(Dependency Injection, DI)和面向切面编程(Aspect Oriented Programming, AOP),使得开发者能够更加专注于业务逻辑的编写,而不是被复杂的配置和技术细节所困扰。...

    spring.net整合mvc小示例

    Spring.NET是一个开源的轻量级框架,它为.NET平台提供了依赖注入(DI)和面向方面的编程(AOP)功能,类似Java平台上的Spring...通过利用依赖注入和面向切面编程,开发者可以更专注于业务逻辑,而不是基础设施的细节。

    Spring-4.3源码

    现在,我们将深入探讨Spring 4.3中的核心概念和技术细节。 首先,让我们关注依赖注入(DI)。这是Spring的核心特性之一,允许我们通过配置或注解将对象之间的依赖关系明确地定义出来,而不是硬编码在代码中。在...

    Spring相关的外文文献和翻译,spring论文参考文献,Java

    外文文献通常会提供原汁原味的技术细节,对于理解Spring的底层机制和设计理念非常有帮助。而中文译文则方便国内开发者阅读,减少了语言障碍,使我们能够迅速吸收国际上的技术精华。 首先,Spring的核心特性之一是...

    spring技术内幕第2版深入解析spring架构与设计原理

    尽管给出的文件信息没有提供实际的技术细节,但可以明确的是,《Spring技术内幕第2版》这本书必定会围绕Spring框架的设计哲学、组件结构、架构模式以及最佳实践等方面展开深入讨论,旨在帮助开发者不仅了解如何使用...

    spring_security_3.1

    Spring Security 是一个强大的和高度可定制的身份验证和访问控制框架,专为Java应用程序设计。它在Spring生态系统中...通过阅读提供的`spring_security_3.1.pdf`文档,你可以更深入地学习这个框架的细节和实践应用。

    Spring in Action 中文版 pdf

    10. **源码分析**:书中的源码可以辅助读者更好地理解Spring框架的实现细节,通过阅读和实验,加深对Spring的理解。 通过阅读《Spring in Action》中文版,开发者不仅可以学习到Spring的基本用法,还能深入了解其...

Global site tag (gtag.js) - Google Analytics