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的工作方式。
分享到:
相关推荐
《Spring Boot 进阶笔记(详细全面) 中文PDF完整版.pdf》是一份非常实用的Spring Boot进阶学习资料,适用于已经掌握基础知识的开发者,希望深入学习Spring Boot框架的高级应用。 本资料主要包含了Spring Boot的高级...
这套课程既可以作为从零基础开始...课程的主要内容涉及有JAVA基础课程、JAVA多线程与并发编程、数据库开发基础和进阶、Spring Framework、Spring进阶、Spring MVC框架、Spring boot、Java常用类库、Java异常处理等等
JWT登录 SpringSecurity基础 SpringSecurity进阶 SpringSecurity高级
本次课程以SpringData为中心,重点讲解了其JPA组件,扩展讲解了redis,mongDB,ES组件,并且对部分组件做了必要的源码分析。而且在课程的最后部分加入了一个综合案例,可以将前面章节所学知识点应用到一个项目中,帮助...
Java高级架构进阶 思维导图 面试真题 架构视频 更多Java架构进阶视频.jpg 0.4MB 对标年薪50W资深架构师成长路线图(简图).png 0.2MB spring源码分析教程.jpg 0.5MB mybatis源码分析教程.jpg 0.5MB 再谈柔性...
java进阶开发,高级版web项目。基于dubbo实现分布式微服务架构,基于spring boot.zip
完整版Java web开发教程PPT课件 Java开发进阶教程 第19章 mybatis高级应用(共21页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第20章 数据库连接池,缓存(共15页).pptx 完整版Java web开发教程PPT...
SpringSecurity入门到进阶到高级,是我们老师给我们讲课用的,我们都照着配就没有问题,可以跑通,
Spring进阶训练 我训练和样本项目(源代码)。 所有这些项目均基于Spring Boot 2.4.1和Java 15。 #议程 Spring Core-一些必要的基础知识和提示 用Spring测试 SpringMVC 坚持不懈 REST,JMX和AOP #项目 核心 ...
完整版Java web开发教程PPT课件 Java开发进阶教程 第19章 mybatis高级应用(共21页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第20章 数据库连接池,缓存(共15页).pptx 完整版Java web开发教程PPT...
java进阶开发,高级版web项目。基于dubbo实现分布式微服务架构,基于spring boot、spring mvc、mybatis、docker、ELK、redis、vue.js、node.js等技术实现的技术分享交流网站
JAVA高级进阶-实现ORM思想封装DBUtil工具类 大牛教你如何用mybatis的自动生成器来提高开发效率 京东架构师教你颠覆密码加密认知-不一样的加密 入职BAT必须技术微框架-webservice的wsdl, 深入学习springboot,轻松...
基础知识阐述和高级知识进阶,难点解疑,热点分析。 包括jsp基础,servlet,数据库,javabean, structs,mvc设计,spring,jsp进阶,hibernate,ssh项目实战,jsp-dao-mvc进阶等章节,是学习参考不错的资料。
第5章 Spring容器高级主题 5.1 Spring容器技术内幕 5.1.1 内部工作机制 5.1.2 BeanDefinition 5.1.3 InstantiationStrategy 5.1.4 BeanWrapper 5.2 属性编辑器 5.2.1 JavaBean的编辑器 5.2.2 Spring默认属性编辑器 ...
【课程介绍】:最新Java进阶SpringMVC框架+协同办公系统OA项目教程(23.75G)【课程目录】:-ideaCode.rar-JavaCode.rar-MavenCode.rar-repository.rar---1.Spring框架--课件资料.rar-----day01spring--1....
视频详细讲解,需要的小伙伴自行网盘下载,链接见附件,永久有效。 Solr它是一种开放源码的、基于 ... 5.Spring Data Solr 章节五:综合案例,电商网站搜索页面 1.关键字搜索 2.搜索面板展示 3.分页 4.排序 5.高亮
完整版Java web开发教程PPT课件 Java开发进阶教程 第19章 mybatis高级应用(共21页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第20章 数据库连接池,缓存(共15页).pptx 完整版Java web开发教程PPT...
完整版Java web开发教程PPT课件 Java开发进阶教程 第19章 mybatis高级应用(共21页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第20章 连接池,缓存(共15页).pptx 完整版Java web开发教程PPT课件 Java...