Spring配制的一些细节:
1. 属性中特殊字符的处理
2. 配制bean之间的关联 --ref用法
3. 内部bean的配制
4. 级联属性赋值
5. null值的定义
6.配制list集合
7.Map集合的配制
8.配制Properties属性值
9.配置单例的集合bean,以供多个bean进行引用,要导入util命名空间
10.导入p命名空间
要用到的java类:
package com.spring.config; public class Manager { private String name; private String address; private double height; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public double getHeight() { return height; } public void setHeight(double height) { this.height = height; } @Override public String toString() { return "Manager [name=" + name + ", address=" + address + ", height=" + height + "]"; } }
package com.spring.config; public class Department { private String name; private Manager manager; public String getName() { return name; } public void setName(String name) { this.name = name; } public Manager getManager() { return manager; } public void setManager(Manager person) { this.manager = person; } @Override public String toString() { return "Department [name=" + name + ", manager=" + manager + "]"; } }
package com.spring.config; import java.util.List; import java.util.Map; public class Company { private String name; private List<Department> departments; private Map<String,Department> mainDepartent; public String getName() { return name; } public void setName(String name) { this.name = name; } public List<Department> getDepartment() { return departments; } public void setDepartments(List<Department> departments) { this.departments = departments; } public Map<String, Department> getMainDepartent() { return mainDepartent; } public void setMainDepartent(Map<String, Department> mainDepartent) { this.mainDepartent = mainDepartent; } public List<Department> getDepartments() { return departments; } @Override public String toString() { return "Company [name=" + name + ", departments=" + departments + ", mainDepartent=" + mainDepartent + "]"; } }
package com.spring.config; import java.util.Properties; public class DataSource { private Properties properties; public Properties getProperties() { return properties; } public void setProperties(Properties properties) { this.properties = properties; } @Override public String toString() { return "DataSource [properties=" + properties + "]"; } }
package com.spring.config; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Main { public static void main(String[] args) { ApplicationContext ctx = new ClassPathXmlApplicationContext("application.xml"); // 1.属性中有特殊字符 Manager p = (Manager) ctx.getBean("manager"); System.out.println(p); // 2. bean之间的关系 Department de = (Department) ctx.getBean("department"); System.out.println(de); // 3.内部bean Department de1 = (Department) ctx.getBean("department1"); System.out.println(de1); // 4.级联属性 Department de2 = (Department) ctx.getBean("department2"); System.out.println(de2); // 5.null值的定义 Department de3 = (Department) ctx.getBean("department3"); System.out.println(de3); // 6.配制list集合 Company company = (Company) ctx.getBean("company"); System.out.println(company); // 7.Map集合的配制 Company company1 = (Company) ctx.getBean("company1"); System.out.println(company1); // 8.配制Properties属性值 DataSource dataSource = (DataSource) ctx.getBean("dataSource"); System.out.println(dataSource + "\t\n>>>" + dataSource.getProperties().get("pwd")); // 9.配置单例的集合bean,以供多个bean进行引用,要导入util命名空间 Company company2 = (Company) ctx.getBean("company2"); System.out.println(company2); // 10.导入p命名空间 Company company3 = (Company) ctx.getBean("company3"); System.out.println(company3); } }
spring-xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.2.xsd"> <!-- 1. 有特殊字符时,可以直接转义。 或者用value属性加<![CDATA[] 解决 --> <bean id="manager" class="com.spring.config.Manager"> <!-- <property name="address" value="China>SH"></property> --> <property name="address"> <value><![CDATA[China>SH]]></value> </property> <property name="name" value="matt"></property> <property name="height" value="175"></property> </bean> <bean id="department" class="com.spring.config.Department"> <!-- 2.ref可以引入指定的bean --> <property name="manager" ref="manager"></property> <property name="name" value="CDC"></property> </bean> <!--3. 内部bean --> <bean id="department1" class="com.spring.config.Department"> <property value="CNN" name="name"></property> <property name="manager"> <bean id="manager" class="com.spring.config.Manager"> <property name="address"> <value><![CDATA[China>HZ]]></value> </property> <property name="name" value="Rose"></property> <property name="height" value="185"></property> </bean> </property> </bean> <!-- 4.定义级联属性 --> <bean id="department2" class="com.spring.config.Department"> <property name="manager" ref="manager" /> <property name="name" value="CDC" /> <property name="manager.height" value="180" /> </bean> <!-- 5.null值的定义 --> <bean id="department3" class="com.spring.config.Department"> <property name="manager"> <null /> </property> <property name="name" value="CMC" /> </bean> <!-- 6.配置list集合 --> <bean id="company" class="com.spring.config.Company"> <property name="name" value="WG"></property> <property name="departments"> <list> <ref bean="department" /> <ref bean="department1" /> <ref bean="department2" /> </list> </property> <property name="mainDepartent"> <null /> </property> </bean> <!-- 7.配置Map集合 --> <bean id="company1" class="com.spring.config.Company"> <property name="name" value="WG1"></property> <property name="departments"> <null /> </property> <property name="mainDepartent"> <map> <entry key="AAA" value-ref="department" /> </map> </property> </bean> <!-- 8.配置Properties属性值 --> <bean id="dataSource" class="com.spring.config.DataSource"> <property name="properties"> <props> <prop key="user">root</prop> <prop key="pwd">******</prop> <prop key="jdbcUrl">jdbc:mysql:///mydata</prop> <prop key="driverClass">com.mysql.jdbc.Driver</prop> </props> </property> </bean> <!-- 9.配置单例的集合bean,以供多个bean进行引用,要导入util命名空间 --> <util:list id="departments"> <ref bean="department1" /> <ref bean="department2" /> </util:list> <bean id="company2" class="com.spring.config.Company"> <property name="name" value="WG1"></property> <property name="departments" ref="departments"></property> <property name="mainDepartent"> <map> <entry key="AAA" value-ref="department" /> </map> </property> </bean> <util:map id="mainDe"> <entry key="AAA" value-ref="department" /> </util:map> <!-- 10. 加入p命名空间,要导入p命名空间 --> <bean id="company3" class="com.spring.config.Company" p:name="WG3" p:departments-ref="departments" p:mainDepartent-ref="mainDe" /> </beans>
相关推荐
配制Spring事务和JdbcTemplate使用 配制Spring事务和JdbcTemplate使用
首先,我们来看标题"Spring 注解 方式配制的小demo",这意味着我们将学习如何创建一个简单的Spring应用,该应用完全基于注解进行配置。在传统的Spring配置中,我们需要在XML文件中定义bean及其属性,但使用注解配置...
Spring 框架是一种常用的 Java Web Application 框架,提供了许多有用的功能和特性,本文将对 Spring 框架的一些基础知识点进行总结。 一、Bean 标签的 id 属性 在 Spring 配置文件中,bean 标签的 id 属性不能...
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之上的一组工具和服务,用于构建云原生应用,...
spring3.2的源代码,至于为什么要下载spring3.2的源代码呢?...虽然每个版本之间有差别,由于我们想要研究的都是spring的一些基本的功能,关于baen解析,bean注入,aop啥的,这些基本的功能每个版本之间差别是非常小的。
`docs`文件夹包含Spring 5.3.9的官方文档,这是一份非常重要的资源,开发者可以通过它了解框架的所有细节。文档通常包括用户指南、参考手册、API文档以及各种教程。在学习和使用Spring时,这些文档将帮助我们理解...
Spring Integration + Spring WS 整合 在 Java 领域中,Spring Integration 和 Spring WS 是两个常用的框架,它们分别负责集成系统和 Web 服务。今天,我们将探讨如何将这两个框架整合在一起,实现一个完整的 Web ...
在Java开发领域,Spring Boot和Spring Batch的整合是构建高效批处理系统的一种常见方式。Spring Boot以其简洁的配置和快速的启动能力深受开发者喜爱,而Spring Batch作为Spring框架的一部分,专注于批量处理任务,...
它使得容器负责管理对象的生命周期和依赖关系,而不是在代码中硬编码这些细节。Spring支持通过构造器注入和设值注入两种方式来实现DI。 - **面向切面编程(AOP)**:AOP允许开发者定义"切面",这些切面封装了横切关注...
以上就是Spring注解方式实现AOP的一些核心细节。通过这种方式,我们可以方便地在不修改原有代码的情况下,为服务添加额外的功能,实现代码的解耦和复用。不过,需要注意的是,过度使用AOP可能会导致代码可读性和可...
Spring框架是Java应用程序开发中的一个核心组件,它提供了一个丰富的IOC(Inversion of Control,控制反转)和AOP(Aspect-Oriented Programming,面向切面编程)功能,使得开发者能够更方便地管理对象和实现模块化...
Spring Cloud使得开发人员能够快速地创建一些具有云原生特性的应用,如服务发现、负载均衡、熔断机制等,而无需深入理解底层复杂性。 【描述】"eclipse项目,没有什么内容" 这里提到的是一个基于Eclipse开发的...
Spring Batch是一个轻量级的,完全面向Spring的批处理框架,可以应用于企业级大量的数据处理系统。Spring Batch以POJO和大家熟知的Spring框架为基础,使开发者更容易的访问和利用企业级服务。Spring Batch可以提供...
本篇文章将深入探讨Spring的核心模块,包括`spring-context`、`spring-webmvc`、`spring-web`、`spring-beans`、`spring-core`、`spring-jdbc`、`spring-aop`、`spring-tx`、`spring-jms`以及`spring-expression`,...
在构建分布式系统时,Spring Cloud Gateway 作为微服务架构中的边缘服务或 API 网关,扮演着至关重要的角色。它负责路由请求到相应的微服务,并可以提供过滤器功能,如限流、熔断等。而Spring Security 则是 Java ...
新手入门:Spring的一些学习方法及意见
除了在线资源外,还有一些经典的Spring框架相关书籍也非常值得推荐,比如《Spring实战》、《Spring源码深度解析》等。这些书籍通常会深入讲解框架的设计原理和高级特性。 #### 5. 加入社区和技术论坛 加入Spring...
最近在做个项目,用的是webwork+spring+hibernate,在网上看了不少webwork+spring的配制方式,大多都是老的配制方式,比如2.1.7的,webwork2.2.4新加了很多功能,和spring的配制也简单了很多,我做了一个简单的登录...
包含spring 3.0.5的所有jar文件: org.springframework.aop-3.0.5.RELEASE.jar org.springframework.asm-3.0.5.RELEASE.jar org.springframework.aspects-3.0.5.RELEASE.jar org.springframework.beans-3.0.5.RELEASE...