IOC(invension of control)和AOP是Spring框架的核心特点,新建maven项目填写如下配置到pom.xml中自动导入spring框架的包依赖后。本文地址:http://47.93.183.36/article/871.html,未经许可,不得转载.
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.1.10.RELEASE</version> </dependency>本文地址:http://47.93.183.36/article/871.html,未经许可,不得转载.
创建一个包,在包下面创建一个类如SpringTest,代码如下:本文地址:http://47.93.183.36/article/871.html,未经许可,不得转载.
package cn.hellomaven; public class SpringTest { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } public void show(){ System.out.println("Hello,"+ name ); } }本文地址:http://47.93.183.36/article/871.html,未经许可,不得转载.
然后我们开始配置beans.xml。对于这个文件名,怎么定义都没有问题的,但存放路径有所讲究,我之前把它放在默认的src下面,以及放在src/test下面都碰到了报错 Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [beans.xml]; nested exception is java.io.FileNotFoundException: class path resource [beans.xml] cannot be opened because it does not exist at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:345)。即找不到配置文件,但这个报错也很不友好,你找不到配置文件可以把你找了哪些路径列出来啊!后来摸索发现需要放在顶目目录src/main/resources下面。beans.xml的配置如下:本文地址:http://47.93.183.36/article/871.html,未经许可,不得转载.
<?xml version="1.0" encoding="utf-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="SpringTest" class="cn.hellomaven.SpringTest"> <property name="name" value="Spring"/> </bean> </beans>本文地址:http://47.93.183.36/article/871.html,未经许可,不得转载.
最后我们写一个test.java来测试spring框架的IOC,test.java的代码如下:本文地址:http://47.93.183.36/article/871.html,未经许可,不得转载.
package cn.hellomaven; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Test { public static void main(String[] args) { //解析beans.xml文件 , 生成管理相应的Bean对象 ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml"); //getBean : 参数即为spring配置文件中bean的id . SpringTest hello = (SpringTest) context.getBean("SpringTest"); hello.show(); } }本文地址:http://47.93.183.36/article/871.html,未经许可,不得转载.
运行即成功调用SpringTest 类中的show方法,spring会将beans.xml中配置的各个bean(实际就是对应一个java class)实例化,如此spring也就成了一个IOC容器。因为里面装载着我们配置好的全部对象,需要哪个我们只需要通过getBean方法来取得对象。看着bean就是像一个工厂模式,只是程序开发中的工厂模式工厂都在自己的程序代码里,而java中的bean是工厂完全独立在总部之外,而且可以开放给任何有生产需求方。本文地址:http://47.93.183.36/article/871.html,未经许可,不得转载.
本文地址:http://47.93.183.36/article/871.html 未经许可,不得转载. 手机访问本页请扫描右下方二维码.
手机扫码直接打开本页面 |