为了用到pom包的基本配置,做一个简单的spring程序来测试。
1.创建
选择菜单项File-New-Other在弹出对话框中选择Maven下的Maven Project
然后单击Next按钮,在弹出的New Maven Project对话框中,使用默认的选项(如果选择Create a simple project选项,
那样我们就不能使用Maven Archetype,有小示例和空项目区别),点击Next。
maven一个典型的快速开始小项目
由于m2eclipse实际上是在使用maven-archetype-plugin插件创建项目,因此和文章(2)中介绍的纯手写创建
Hello World程序中定义项目基本坐标一样操作。
结构如下,这个maven包可以看出我这个用户的setting.xml文件中定义的maven库在F:\MavenPerson\.m2\repository
2.编写测试代码
删除了src/main/test新增source folder : src/main/resources
1.Car.java
package com.cityeve.beans;
public class Car {
private String brand;
private String color;
private int maxSpeed;
//getter() setter()方法省略
public Car() {
System.out.println("无参构造函数");
}
public Car(String brand,String color,int maxSpeed) {
this.brand=brand;
this.color=color;
this.maxSpeed=maxSpeed;
}
public void introduce(){
System.out.println("品牌:"+brand+"颜色:"+color+"最大速度:"+maxSpeed+"km/s");
}
}
2.bean.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:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd">
<bean id="car" class="com.cityeve.beans.Car"
p:brand="雪佛兰"
p:color="绿色"
p:maxSpeed="300"
/>
</beans>
3.BeanFactoryTest.java
package com.cityeve.test;
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.core.io.Resource;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.core.io.support.ResourcePatternResolver;
import com.cityeve.beans.Car;
/**
* 1.org.springframework.beans.factory.BeanFactory是Spring框架最核心的接口,提供了高级的Ioc配置机制。
* 2.org.springframework.context.ApplicationContext建立在BeanFactory的基础之上,提供更多面向应用的功能
* 适合于创建实际应用;
*/
public class BeanFactoryTest {
public static void main(String[] args) throws Exception{
/**
* 1.使用ApplicationContext启动spring容器获取bean实例
*/
ApplicationContext ac=new ClassPathXmlApplicationContext("bean.xml");
Car car1=(Car)ac.getBean("car");
car1.introduce();
/**
* 2.通过BeanFactory装载配置文件,启动spring Ioc容器。
*/
ResourcePatternResolver resolver=new PathMatchingResourcePatternResolver();
Resource res=resolver.getResource("classpath:bean.xml");
System.out.println(res.getURL());
//被废弃,不建议使用,用下面的
//BeanFactory bf=new XmlBeanFactory(res);
DefaultListableBeanFactory factory=new DefaultListableBeanFactory();
//XmlBeanDefinitionReader通过Resource装载spring配置信息并启动Ioc容器,然后就可以通过BeanFactory#getbean(beanName)
//方法从Ioc容器获取bean
XmlBeanDefinitionReader reader=new XmlBeanDefinitionReader(factory);
reader.loadBeanDefinitions(res);
System.out.println("init BeanFactory");
Car car=factory.getBean("car",Car.class);
System.out.println("car bean is ready for use");
car.introduce();
}
}
4.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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.cityeve</groupId>
<artifactId>MyTest</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>MyTest</name>
<url>http://maven.apache.org</url>
<properties>
<!-- spring的版本配置 -->
<spring.version>3.2.4.RELEASE</spring.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<!-- spring start -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- spring end -->
</dependencies>
</project>