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">
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">
<property name ="message">
<value>HelloWorld</value>
</property>
<bean>
</beans>
这里在配置bean的时候都指明了id,id是这个bean在配置文件中的唯一标识,当然也可以使用name,下面说说它们之间的区别:
id属性是在配置文件中标识Bean的,name属性则可以用来指定这个Bean的别名。因为XML规范对于id的合法字符有严格的规定,所以当用非法字符来配置id时候就不行了,这个时候可以通过name属性来解决。同时通过name属性可以指定多个id,这些id要用都好或者分号分割。
正如上面的代码中提到的格式
<bean id ="HelloWorld" class="com.jnotnull.HelloWorld">
id属性用来表示整个bean,class属性用来表示这个bean真正代表的类,它是由路径加;类名组成。
在Spring中,Bean可以被定义为两种模式:单例模式和非单例模式(singleton or non-singleton)。而Spring默认的是单例模式,何谓单例模式,就是这个Bean只有一个实例存在,而不管有多少个对这个Bean的请求。而非单例模式则回在每次对这个Bean的请求中产生新的实例。简单的说就是:singleton只会被new一次,而non-singleton却在每次请求的时候都new一次。这就是区别。
上面提到,Spring中,Bean默认的模式是单例模式,我们来看看它的代码:
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">
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">
<property name ="message">
<value>HelloWorld</value>
</property>
<bean>
</beans>
当然我们可以显式的配置为singleton模式
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" singleton="true">
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" singleton="true">
<property name ="message">
<value>HelloWorld</value>
</property>
<bean>
</beans>
而要改为non-singleton模式则把singleton属性改为false就行了
在Spring的配置文件中,我们完成了对类的属性的注入:看看下面的代码:
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">
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">
<property name ="message">
<value>HelloWorld</value>
</property>
<bean>
</beans>
这里的propeity标签对应于类中的属性,但是如何对其注入null值呢:
看看下面的代码:
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">
6. <property name ="message">
7. <value>null</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">
<property name ="message">
<value>null</value>
</property>
<bean>
</beans>
或者
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">
6. <property name ="message">
7. <null/>
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">
<property name ="message">
<null/>
</property>
<bean>
</beans>
配置同样非常方便
下面我们来看看如何实现依赖 depends-on
先看一下代码
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" depends="date">
6. <property name ="message">
7. <value>HelloWorld</value>
8. </property>
9. <property name ="date">
10. <ref local="date"/>
11. </property>
12. <bean>
13. <bean id="date" class="java.util.Date">
14. </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" depends="date">
<property name ="message">
<value>HelloWorld</value>
</property>
<property name ="date">
<ref local="date"/>
</property>
<bean>
<bean id="date" class="java.util.Date">
</beans>
在这里我们在调用HelloWorld之前我们就必须调用date,对date进行初始化。这就是depends-on的工作方式。
分享到:
相关推荐
SpringCloud进阶是指在了解和使用SpringCloud的基础功能之后,深入学习和实践更加复杂的应用场景和高级特性。 在SpringCloud进阶的学习过程中,一个重要的话题是服务的容错处理和高可用设计。Hystrix是一个关键组件...
Spring Boot 是一个由 Pivotal 团队开发的框架,旨在简化基于 Spring ...随着对框架的深入理解和实践,开发者可以利用更多高级特性,如数据访问、缓存、消息队列、安全性和测试支持,进一步提升应用的功能和性能。
在"spring进阶.rar"这个压缩包中,我们可以期待深入探讨这些模块以及Spring的高级特性。 1. Core Container(核心容器):这是Spring的基础,包括Bean Factory和ApplicationContext。Bean Factory是Spring的IoC...
这套课程既可以作为从零基础开始...课程的主要内容涉及有JAVA基础课程、JAVA多线程与并发编程、数据库开发基础和进阶、Spring Framework、Spring进阶、Spring MVC框架、Spring boot、Java常用类库、Java异常处理等等
本资源包“Spring进阶”显然针对的是已经对Spring有一定基础的开发者,旨在帮助他们深入理解并掌握Spring的高级特性和用法。让我们详细探讨一下Spring的一些关键知识点。 首先,Spring的核心特性之一是依赖注入...
通过深入研究“Spring MVC 进阶1”的源代码,你可以了解到Spring MVC的高级用法,包括AOP、事务管理、缓存控制等,并能更好地理解如何将这些概念应用于实际项目中,提升开发效率和代码质量。同时,通过实践这些示例...
根据提供的文件信息,我们可以推断出这是一份关于Java编程语言高级进阶的学习资源分享。虽然分享者在描述中提到“仅仅是分享!实在没有c币可以留言我,我可以私发”,这里的“c币”可能是指某个社区或平台内的虚拟...
本次课程以SpringData为中心,重点讲解了其JPA组件,扩展讲解了redis,mongDB,ES组件,并且对部分组件做了必要的源码分析。而且在课程的最后部分加入了一个综合案例,可以将前面章节所学知识点应用到一个项目中,帮助...
"JWT登录SpringSecurity基础SpringSecurity进阶SpringSecurity高级" Spring Security 是一个功能强大且灵活的安全框架,用于保护基于 Spring 的应用程序。它提供了许多功能强大且灵活的安全特性,包括身份验证、...
在本课程"24.2 SpringCloud电商进阶开发"中,我们将深入探讨Spring Cloud这一强大的微服务框架在电子商务领域的高级应用。Spring Cloud是基于Spring Boot实现的服务发现、配置管理、断路器、智能路由、微代理、控制...
【Spring进阶—如何用Java代码实现邮件发送】 在现代软件开发中,特别是在企业级应用中,邮件发送是一项常见的功能,比如在进销存系统中发送库存预警通知,或者在招聘网站上验证用户注册时的电子邮件地址。这些场景...
《源码-spring cloud 微服务 入门、实战与进阶》是一个涵盖Spring Cloud微服务框架的深度学习资源包,旨在帮助开发者从基础到高级全面掌握Spring Cloud的相关技术。这个压缩包的核心内容是名为"spring-cloud-master...
本教程“Struts高级实战进阶”将深入探讨Struts框架的高级特性和实践技巧,帮助开发者提升在实际项目中的应用能力。 首先,我们来了解Struts的核心概念。Struts是一个MVC(Model-View-Controller)框架,它将业务...
根据给定的信息,“高级Java人才培训专家—spring高级49讲”主要针对的是希望深入了解Spring框架内部机制及其高级特性的开发者。本课程旨在通过一系列深入浅出的教学内容帮助学员建立起对Spring框架的理解,并掌握其...
在本课程"Java进阶高手课-Spring精讲精练"中,你将深入学习Java技术和Spring框架,提升你的编程技能并掌握高级概念。课程涵盖了Java性能调优、网络编程以及并发处理等核心主题,旨在通过真实的项目实战,让你能够...
3. **Mybatis**:是一个持久层框架,它支持定制化SQL、存储过程以及高级映射。Mybatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。它直接映射原始数据库记录到Java对象并可以使用简单的XML或注解进行...
**SSM进阶2:Spring+SpringMVC+Mybatis** 在Java Web开发领域,SSM框架(Spring、SpringMVC、Mybatis)是广泛使用的经典组合,它们各自负责不同的职责,共同构建出高效、灵活的后端系统。本教程将深入探讨如何使用...
【标题】"Java进阶之SpringIoC源码深度剖析共19页.pd" 提供的是一项关于Java开发中的高级主题,特别是针对Spring框架的依赖注入(Inversion of Control,IoC)部分的深入研究。Spring IoC是Spring框架的核心特性之一...
### Java高级架构进阶学习知识点概述 #### 一、思维导图 - **知识点概览**:思维导图是理解Java高级架构的关键工具之一。它能够帮助开发者快速掌握架构设计的核心概念和技术要点。 - **核心内容**: - **基础知识...