1.创建一个maven项目
点击other,选中maven项目
不选择简易创建 一路next 创建之后的目录
这里要消除这个错误,右键项目名,然后点击 build path 找到 Add Library
点击 Server Runtime 再点击你的服务器 点击finish 就可以消除这个红色感叹号 当然为了测试,我也加入了Junit
配置 pom.xml文件 在dependency标签中加入如下代码
点击保存,右下角出现绿色的加载条,说明导入Spring的五个jar包成功 你也可以在下面这个目录中查看
之后我们需要配置 applicationContext.xml文件 配置文件的路径为 src/main/resources
这里有个小插曲(我也是新手,这个用作学习)项目下找不到必要的src/main/java 以及
src/test/java
这个时候你需要右键你的项目 点击 build path 找到configure build path 然后点击Source 你会发现项目里有这两个文件夹 不过显示的是missing 把他俩全删掉 然后你再自己创建就好了
!!!言归正传,现在我们需要配置xml文件了
<?xml version="1.0" encoding="UTF-8"?>
<beans xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.2.xsd "
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
</beans>
这个是我的配置 那些一大堆乱七八糟的是约束 做啥的我现在也不知道 想了解的可以自己百度… 然后回来给我讲 哈哈
之后我做的事情是在 src/main/java下创建了一个包 里面放了一个接口与一个实现类,模拟service层
接口的代码
package maven_spring_demo3;
public interface UserService {
public void addUser();
}
实现类的代码
package maven_spring_demo3;
public class UserServiceImpl implements UserService {
public void addUser() {
//这里就是做一个简单的演示,所以只让它输出一句话
System.out.println("hello spring");
/*这里我为什么要用黑色的呢,因为我点回车不小心点到了、
就是回车左边大括号下面的
添加代码段是用三个 ``
第二次写,正在慢慢熟悉`*/
}
}
现在有了这些东西,怎么用Spring去调用它呢? 还得回到xml中
我在xml中加入了一个 bean标签 如下图
这个是加完以后的xml文件代码
<?xml version="1.0" encoding="UTF-8"?>
<beans xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.2.xsd "
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<bean id="UserServiceImplId" class="maven_spring_demo3.UserServiceImpl"></bean>
</beans>
可以发现 calss属性中放的是你的类,这里怎么判断他行不行呢,你按住ctrl键,然后左键,如果点的进去你这个类,就没有问题了
之后就是测试了 新建一个测试类 如下图
package maven_spring_demo3_test;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import maven_spring_demo3.UserService;
public class maven_spring_demo3_test {
@Test
public void testAddUser() {
//从spring容器中获得
String xmlPath="applicationContext.xml";
ApplicationContext applicationContext = new ClassPathXmlApplicationContext(xmlPath);
//这里就不需要new它的实现类对象了
UserService userService = (UserService) applicationContext.getBean("UserServiceImplId");
userService.addUser();
}
}
然后右键方法名 run as -> junit Test
最后一点 我对IOC的理解:
Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想
它的作用是不用new对象了,将你设计好的对象交给容器管理,而不是在对象内部直接控制了。
好好的对象说没就没。