我的第一个Spring程序
本项目是基于Mavan创建.
1.创建项目
java包需要Sources Root
resurose包需要Resources Root
test包需要Test Sources Root
pom.xml导入依赖
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>4.3.7.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>4.3.7.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.3.7.RELEASE</version> </dependency> <!-- https://mvnrepository.com/artifact/commons-logging/commons-logging --> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-expression</artifactId> <version>4.3.7.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>4.3.7.RELEASE</version> <scope>test</scope> </dependency>
2.在dao包下创建SpringDao接口
/** * @Description TODO * @Author Charon <1819248612@qq.com> * @create 2020-11-05-23:32 * @Version 1.0.0 */ public interface SpringDao { public void firstDome(); }
3.在dao包下创建接口的实现类SpringDaoImpl
** * @Description TODO * @Author Charon <1819248612@qq.com> * @create 2020-11-05-23:34 * @Version 1.0.0 */ public class SpringDaoImpl implements SpringDao{ @Override public void firstDome() { System.out.println("hello spring"); } }
4.在resurose包下创建Spring的配置文件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" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd"> <!-- 由Spring容器创建这个类的实例; 对象的名称一般对应到id属性; class类似于new 后面的类名:全限定包名,一般不能写接口和抽象类 --> <bean id="springDome1" class="com.charon.dao.SpringDaoImpl"></bean> <bean id="springDome2" class="com.charon.dao.SpringDaoImpl"></bean> </beans>
5.在test包下创建SprinTest
package com.test; import com.charon.dao.SpringDao; import org.junit.Test; import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.xml.XmlBeanFactory; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.Resource; import javax.swing.*; /** * @Description TODO * @Author Charon <1819248612@qq.com> * @create 2020-11-05-23:38 * @Version 1.0.0 */ public class SpringTest { /** * 第一种获取实例方法: * 使用ApplicationContext获取bean实例 * * 根据bean的id获取bean的实例,如果定义了2个bean不会报错 */ @Test public void test(){ //定义Spring配置文件的位置 String xmlPath = "ApplicationContext.xml"; //初始化Spring配置文件,加载配置文件 ApplicationContext applicationContext = new ClassPathXmlApplicationContext(xmlPath); //通过容器获取SpringDaoImpl实例 SpringDao springDome = (SpringDao) applicationContext.getBean("springDome2"); //调用SpringDao中的方法 springDome.firstDome(); } /** * 第二种获方法: * 通过BeanFactory获取bean的实例 * * 根据bean的id获取bean的实例,如果定义了2个bean不会报错 */ @Test public void test1(){ //定义Spring配置文件的位置 String xmlPath = "ApplicationContext.xml"; //解析配置文件 Resource resource =new ClassPathResource(xmlPath); //获取BeanFactory BeanFactory beanFactory = new XmlBeanFactory(resource); //通过bean的id获取bean对象 SpringDao springDao = (SpringDao) beanFactory.getBean("springDome1"); //调用SpringDao中的方法 springDao.firstDome(); } /** * 第三种获方法: * 通过BeanFactory获取bean的实例 * * 根据bean的id获取bean的实例,如果定义了2个bean不会报错 */ @Test public void test2(){ //定义Spring配置文件的位置 String xmlPath = "ApplicationContext.xml"; //解析配置文件 Resource resource = new ClassPathResource(xmlPath); //获取BeanFactory BeanFactory beanFactory =new XmlBeanFactory(resource); //通过bean的id获取实例 SpringDao springDome1 = beanFactory.getBean("springDome1", SpringDao.class); //调用方法 springDome1.firstDome(); } }
项目结构展示
6.运行结果