学习Spring时,我用的是Maven来管理jar包,先看看maven的pom.xml:

pom.xml

 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>spring</groupId>
<artifactId>spring_TencentKe_Tonggang-5</artifactId>
<packaging>war</packaging>
<version>1.4</version>
<name>spring_TencentKe_Tonggang-5 Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-beans -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/c3p0/c3p0 -->
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency> <!-- https://mvnrepository.com/artifact/org.aspectj/aspectjweaver -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.8.9</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
</dependencies>
<build>
<finalName>spring_TencentKe_Tonggang-5</finalName>
</build>
</project>

先看看写的三个bean:

Car.java:

package spring.beans;

public class Car {
private String cname;//车名字
private int price;//价格
private double max;//最大速度 public Car() {
super();
// TODO Auto-generated constructor stub
}
public Car(String cname, double max) {
super();
this.cname = cname;
this.max = max;
}
public Car(String cname, int price) {
super();
this.cname = cname;
this.price = price;
}
public void setCname(String cname) {
this.cname = cname;
}
public void setPrice(int price) {
this.price = price;
}
@Override
public String toString() {
return "Car [cname=" + cname + ", price=" + price + ", max=" + max + "]";
} }

Person.java:

package spring.beans;

import java.util.List;
import java.util.Map; public class Person {
private String Pname;//姓名
private int age;//年龄
private Car car;//一辆车
private List<Car> cars;//很多车
private Map<String, String> des;//描述 public Person() { } public void setDes(Map<String, String> des) {
this.des = des;
} public void setCars(List<Car> cars) {
this.cars = cars;
}
public void setPname(String pname) {
Pname = pname;
}
public void setAge(int age) {
this.age = age;
}
public void setCar(Car car) {
this.car = car;
}
@Override
public String toString() {
return "Person [Pname=" + Pname + ", age=" + age + ", car=" + car + ", cars=" + cars + ", des=" + des + "]";
} }

Person1.java:

package spring.beans;

import java.util.List;

public class Person1 {
private String pname;
private int age;
private List<Car> cars;
public void setPname(String pname) {
this.pname = pname;
}
public void setAge(int age) {
this.age = age;
}
public void setCars(List<Car> cars) {
this.cars = cars;
}
@Override
public String toString() {
return "Person1 [pname=" + pname + ", age=" + age + ", list=" + cars + "]";
} }

xml配置中,看下面xml文件配置:

applicationContext.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:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.3.xsd">
<bean id="person" class="spring.beans.Person"><!--将这个bean加入到spring的ioc容器-->
<property name="pname" value="张三"></property><!--给bean的pname属性赋值-->
<property name="age" value="20"></property>
<property name="cars" ><!--给bean中的list<Car>类型属性赋值-->
<list>
<ref bean="car1"/><!--配置第一个car-->
<ref bean="car2"/><!--配置第二个car-->
</list>
</property>
<property name="des"><!--给bean中map<String,String>类型的属性赋值-->
<map>
<entry key="a" value="a1"></entry><!--第一个值-->
<entry key="b" value="b1"></entry><!--第二个值-->
</map>
</property>
</bean> <util:list id="cars"><!--利用util标签,配置多个car-->
<ref bean="car1"/>
<ref bean="car2"/>
</util:list> <bean id="person1" class="spring.beans.Person1" p:pname="王五" p:age="23"
p:cars-ref="cars"></bean><!--配置bean到IOC容器,并用p标签直接给属性赋值,p:cars-ref就用到了上面的util标签中的id值--> <bean id="car1" class="spring.beans.Car"><!--配置第一个car-->
<property name="cname" value="奥迪"></property>
<property name="price" value="300000"></property>
</bean>
<bean id="car2" class="spring.beans.Car"><!--配置第二个car-->
<property name="cname" value="长安"></property>
<property name="price" value="100000"></property>
</bean>
</beans>

测试:

package spring.beans.test;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; import spring.beans.Person;
import spring.beans.Person1; public class Main { public static void main(String[] args) {
ApplicationContext cxt= new ClassPathXmlApplicationContext("applicationContext.xml");
Person p=(Person) cxt.getBean("person");
System.out.println(p); Person1 p1=(Person1) cxt.getBean("person1");
System.out.println(p1);
} }

输出:

Person [Pname=张三, age=20, car=null, cars=[Car [cname=奥迪, price=300000, max=0.0], Car [cname=长安, price=100000, max=0.0]], des={a=a1, b=b1}]
Person1 [pname=王五, age=23, list=[Car [cname=奥迪, price=300000, max=0.0], Car [cname=长安, price=100000, max=0.0]]]

Spring学习之xml配置Bean总结的更多相关文章

  1. Spring学习--通过注解配置 Bean (三)

    组件装配: <context:component-sacan> 元素还会自动注册 AutowiredAnnotationBeanPostProcesser 实例 , 该实例可以自动装配具有 ...

  2. Spring学习--通过注解配置 Bean (二)

    在 classpath 中扫描组件: 当在组件类上使用了特定的注解之后 , 还需要在 Spring 的配置文件中声明 <context:component-scan>: base-pack ...

  3. Spring学习--通过注解配置 Bean (一)

    在 classpath 中扫描组件: 组件扫描(component scanning): Spring 能够从 classpath 下自动扫描 , 侦测和实例化具有特定注解的组件. 特定组件包括: @ ...

  4. Spring工厂方法(factory-bean)配置bean

    在spring的世界中, 我们通常会利用bean config file 或者 annotation注解方式来配置bean. 在第一种利用bean config file(spring xml)方式中 ...

  5. Spring中三种配置Bean的方式

    Spring中三种配置Bean的方式分别是: 基于XML的配置方式 基于注解的配置方式 基于Java类的配置方式 一.基于XML的配置 这个很简单,所以如何使用就略掉. 二.基于注解的配置 Sprin ...

  6. 这一次搞懂Spring Web零xml配置原理以及父子容器关系

    前言 在使用Spring和SpringMVC的老版本进行开发时,我们需要配置很多的xml文件,非常的繁琐,总是让用户自行选择配置也是非常不好的.基于约定大于配置的规定,Spring提供了很多注解帮助我 ...

  7. @ImportResource-SpringBoot使用xml配置Bean

    前言 SpringBoot推荐使用注解的方式去声明bean,但还是提供了xml的方式去加载bean 一.创建要声明为bean的实体类 WzqEntity.java package com; /** * ...

  8. Spring IOC-基于XML配置的容器

    Spring IOC-基于XML配置的容器 我们先分析一下AbstractXmlApplicationContext这个容器的加载过程. AbstractXmlApplicationContext的老 ...

  9. Spring Ioc容器xml配置

    Spring Ioc容器xml配置基本结构: <?xml version="1.0" encoding="UTF-8"?> <beans xm ...

随机推荐

  1. IDEA错误的将所有代码文件都加入版本控制

    1.问题: IDEA将从Git上拉取的所有代码文件都加入版本控制里,而这些文件和远程服务器没有任何区别: 2.原因: 后来发现,虽然项目使用的是Git的版本控制,但是异常模块都是使用SVN的版本控制: ...

  2. knockoutJs在移动设备上有时无法更新控件值

    最近在用cordova(phonegap)写一个移动app,表单比较复杂,用了knockoutJs作为前端的MVVM框架进行数据绑定. 但是发现有时候(其实是每次)如果最后在input中编辑一个值,然 ...

  3. UI通过UISlider编写游戏第六感

    #import "RootViewController.h" @interface RootViewController (){    UILabel *scoreLabel; } ...

  4. [mysql]清除单表大量数据方法(需保留部分数据)

    大半夜的在删除线上的日志数据,需要清理的大概有1亿八千万条...任务艰巨. 毕业前没学过数据库,所以对于如何清理大量数据还真一时不知道该怎么办才好.刚开始确实想过对表进行重命名的方式来处理,不过当时因 ...

  5. MySQL中自适应哈希索引

    自适应哈希索引采用之前讨论的哈希表的方式实现,不同的是,这仅是数据库自身创建并使用的,DBA本身并不能对其进行干预.自适应哈希索引近哈希函数映射到一个哈希表中,因此对于字典类型的查找非常快速,如SEL ...

  6. Json模块的详细介绍(序列化)

    什么叫序列化——将原本的字典.列表等内容转换成一个字符串的过程就叫做序列化. 比如,我们在python代码中计算的一个数据需要给另外一段程序使用,那我们怎么给? 现在我们能想到的方法就是存在文件里,然 ...

  7. 《Python机器学习》笔记(五)

    通过降维压缩数据 在前面已经介绍了几种不同的特征选择技术对数据集进行降维的方法.另一种常用于降维的特征选择方法就是特征抽取.数据压缩也是机器学习领域中的一个重要内容.数据压缩技术可以帮助我们对数据及逆 ...

  8. 爬虫,如何防止被ban之策略大集合

    话说在尝试设置download_delay小于1,并且无任何其他防止被ban的策略之后,我终于成功的被ban了. 关于scrapy的使用可参见之前文章: http://blog.csdn.net/u0 ...

  9. PHP......会话控制SESSION与COOKIE

    一.SESSION Session:在计算机中,尤其是在网络应用中,称为“会话控制”.Session 对象存储特定用户会话所需的属性及配置信息.这样,当用户在应用程序的 Web 页之间跳转时,存储在 ...

  10. 快速查找文件——Everything

    Everything Search Engine Locate files and folders by name instantly. Small installation file Clean a ...