`

Spring配制的一些细节

 
阅读更多

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&gt;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事务和JdbcTemplate使用

    Spring 注解 方式配制的小demo

    首先,我们来看标题"Spring 注解 方式配制的小demo",这意味着我们将学习如何创建一个简单的Spring应用,该应用完全基于注解进行配置。在传统的Spring配置中,我们需要在XML文件中定义bean及其属性,但使用注解配置...

    spring6小细节.docx

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

    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 v3.2源码

    spring3.2的源代码,至于为什么要下载spring3.2的源代码呢?...虽然每个版本之间有差别,由于我们想要研究的都是spring的一些基本的功能,关于baen解析,bean注入,aop啥的,这些基本的功能每个版本之间差别是非常小的。

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

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

    Spring Integration + Spring WS 整合

    Spring Integration + Spring WS 整合 在 Java 领域中,Spring Integration 和 Spring WS 是两个常用的框架,它们分别负责集成系统和 Web 服务。今天,我们将探讨如何将这两个框架整合在一起,实现一个完整的 Web ...

    spring的一些基本知识及如何配置使用

    它使得容器负责管理对象的生命周期和依赖关系,而不是在代码中硬编码这些细节。Spring支持通过构造器注入和设值注入两种方式来实现DI。 - **面向切面编程(AOP)**:AOP允许开发者定义"切面",这些切面封装了横切关注...

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

    以上就是Spring注解方式实现AOP的一些核心细节。通过这种方式,我们可以方便地在不修改原有代码的情况下,为服务添加额外的功能,实现代码的解耦和复用。不过,需要注意的是,过度使用AOP可能会导致代码可读性和可...

    Spring Boot整合Spring Batch,实现批处理

    在Java开发领域,Spring Boot和Spring Batch的整合是构建高效批处理系统的一种常见方式。Spring Boot以其简洁的配置和快速的启动能力深受开发者喜爱,而Spring Batch作为Spring框架的一部分,专注于批量处理任务,...

    spring2.0升级到spring3.0.5的开发包

    Spring框架是Java应用程序开发中的一个核心组件,它提供了一个丰富的IOC(Inversion of Control,控制反转)和AOP(Aspect-Oriented Programming,面向切面编程)功能,使得开发者能够更方便地管理对象和实现模块化...

    spring-cloud项目

    Spring Cloud使得开发人员能够快速地创建一些具有云原生特性的应用,如服务发现、负载均衡、熔断机制等,而无需深入理解底层复杂性。 【描述】"eclipse项目,没有什么内容" 这里提到的是一个基于Eclipse开发的...

    SpringBatch+Spring+Mybatis+MySql (spring batch 使用jar)

    Spring Batch是一个轻量级的,完全面向Spring的批处理框架,可以应用于企业级大量的数据处理系统。Spring Batch以POJO和大家熟知的Spring框架为基础,使开发者更容易的访问和利用企业级服务。Spring Batch可以提供...

    spring源码包.zip

    本篇文章将深入探讨Spring的核心模块,包括`spring-context`、`spring-webmvc`、`spring-web`、`spring-beans`、`spring-core`、`spring-jdbc`、`spring-aop`、`spring-tx`、`spring-jms`以及`spring-expression`,...

    Spring Cloud Gateway 整合 Spring Security 统一登录认证鉴权

    在构建分布式系统时,Spring Cloud Gateway 作为微服务架构中的边缘服务或 API 网关,扮演着至关重要的角色。它负责路由请求到相应的微服务,并可以提供过滤器功能,如限流、熔断等。而Spring Security 则是 Java ...

    新手入门:Spring的一些学习方法及意见

    新手入门:Spring的一些学习方法及意见

    精通spring - Mastering Spring.pdf

    除了在线资源外,还有一些经典的Spring框架相关书籍也非常值得推荐,比如《Spring实战》、《Spring源码深度解析》等。这些书籍通常会深入讲解框架的设计原理和高级特性。 #### 5. 加入社区和技术论坛 加入Spring...

    webwork2.2.4+spring+hibernate做的一个登入程序

    最近在做个项目,用的是webwork+spring+hibernate,在网上看了不少webwork+spring的配制方式,大多都是老的配制方式,比如2.1.7的,webwork2.2.4新加了很多功能,和spring的配制也简单了很多,我做了一个简单的登录...

    spring3.0.5 所有jar文件

    包含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...

Global site tag (gtag.js) - Google Analytics