暑期实习的时候参与过一个ssm项目的开发,但是开发过程中都是在完成controller和service对于spring基本不理解,刚好做毕设的时候想使用下ssm框架,但是跟着网上的各种教程总是出现各种错误,无奈之下,打算从头学起,打好基础才能知道如何解决错误。
spring的核心就是IOC和AOP,从入门Hello spring!一步步学习下IOC(控制反转,好像也叫作依赖注入)到底是个什么东西!
首先创建一个动态web工程。
这里直接贴上最终项目结构:
向lib中导入spring的4个核心jar包(当然这是是不够的)卖个小关子。
在src下新建一个包,然后创建一个Hello.java类
package com.cumt.spring;
public class Hello {
public void say() {
System.out.println("Hello Spring!");
}
}
然后,新建一个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"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="hello" class="com.cumt.spring.Hello"></bean>
</beans>
在这里多说一句,这个配置文件的约束可以在spring-framework-4.3.7.RELEASE\docs\spring-framework-reference\html目录下的index.html下的configuration metadata中找到
接着,就是新建一个HelloTest.java
package com.cumt.spring;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class HelloTest {
public static void main(String[] args) {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
Hello hello = (Hello) applicationContext.getBean("hello");
hello.say();
}
}
最后就是愉快的测试了.....
日常找问题....
原因是没有导入commons-logging-x.xjar 的jar包。
导入后完整的结构应该是这样的:
再次运行HelloTest.java
终于出结果了。
目前的理解就是通过控制反转(依赖注入)我们不需要通过原始的new 方法去创建一个对象,根据书本的解释这样做的好处是可以解耦合。