学习Java最好最有效的方法是学习Spring,但是最笨最没效的方法也是学习Spring。
为什么这么说呢?道理其实很简单
A、Spring很庞大,很完善,也非常的底层,如果我们学会的Spring,那么也就掌握了很多的技术的核心,也了解了很多的开发思想,所以说他是最好也是最有效的;
B、但就是因为Spring很庞大,很完善,所以学习起来本身就是一件很枯燥,很难坚持下去的一件事情,放弃的人也占了大多数。当然,其中也有很多的坑,比如:我们会一味的学习其中的请求调用流程,陷入本末倒置,了解的其中的方法调用,却忽略了其中重要的设计思想等。所以这也是最难最漫长的,一旦放弃,也就是最无效的。
学习Spring大概有两种思路吧,也可以说是方向。
1、由易到难:网上很多教程,就是先编写最简单的方法,然后一层层的由内而外的封装,直至成了一个完整的spring(暂且这么说吧)
2、由难到易:编写最简单的方法,从Spring外围一步步的深入了解一个完整的Spring的运行逻辑和流程。
我们这里采用第二种方法。
话不多说,讲尝试了多次的方法。
首先,可以不用去尝试网上常说的下载源码去看,代码量大、繁琐、更容易烦躁。
其次,不要奢求追逐最新,我们可以研究最简单最基础的版本,3.x版本。
第一步、创建一个maven项目,引入Spring的3.0版本
创建过程就省略啦。
项目格式(我们开始需要学习的主要是就是划线的几部分)
第二步、pom文件中引入Spring
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>3.0.5.RELEASE</version>
</dependency>
</dependencies>
第三步、编写最简单的方法
LoginService.java
public class LoginService {
public String login(String name){
System.out.println("hello " + name );
return "success";
}
}
Test.java
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/** * @author sunminghao */
public class Test {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
LoginService service = (LoginService)context.getBean("loginService");
String result = service.login("admin");
System.out.println("loginService result : " + result);
}
}
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="loginService" class="com.demo.LoginService"/>
</beans>
万事具备,我们就可以通过简单的demo,了解Spring的原理啦
比如,我们debug进去,首先就可以了解到的Spring是怎么读取applicationContext.xml文件的,怎么创建和初始化bean的。
这种方式比我们下载源码枯燥的去看 相对来说要好的多,毕竟我们可以看到他们的执行方式,不至于说一头雾水。
但是也要注意 别被一层层的跳转搞懵了,我们要有所重点。
关注我,我们一起学习Spring源码,希望大家共同督促学习!
大家的建议,就是我们猿人进步的动力。