引导语:大家知道Java中Spring是什么吗,让本站小编告诉你们吧,以下是本站小编分享给大家的Java中的Spring入门实例,希望大家喜欢!
ng是什么
网上对Spring以及使用Spring的好处的解释铺天盖地,常常是各个网站之间互相拷贝,而且还引入了一堆的缩写,什么IoC、AOP……
我觉得对跟我一样的初学者而言,可以这么理解:Spring是基于反射机制写的一些包,有了它以后你可以将类的实例化写到一个配置文件里,由相应的Spring包负责实例化。
假设你有一个类A,以前你实例化时要写A a = new A(),现在不用了,你只要写一个xml文件,并按Spring指定的格式配置好,它就能通过反射机制将A的实例返回给你。
至于使用Spring的好处,我会在下面的实例中提到。
2. 下载Spring
我第一次下载的是,觉得解压后看了一下,Spring自身的jar应该是都有了,不过在后面的'程序编译时出现:
Exception in thread "main" assDefFoundError: org/apache/commons/logging/LogFactory
没有找到相关的jar包,后来尝试下载并在里面找到了包。
总而言之,我也不知道它们这些release包是怎么组织起来的,汗。
3. 编写示例
示例包含一个接口IProgrammingLanguage,用于表示编程语言,两个类JavaLanguage跟PerlLanguage实现该接口用于表示特定的编程语言Java跟Perl。
另外有一个Developer类,用于表示IT开发者。最后,是程序入口所在的Main类。
3.1.接口
package example;
public interface IProgrammingLanguage {
public String whoAmI();
}
代码
package example;
public class JavaLanguage implements IProgrammingLanguage {
@Override
public String whoAmI() {
// TODO Auto-generated method stub
return "Java";
}
}
代码
package example;
public class PerlLanguage implements IProgrammingLanguage {
@Override
public String whoAmI() {
// TODO Auto-generated method stub
return "Perl";
}
}
(这个类用于描述一个开发人员,它包含一个IProgrammingLanguage类型的成员,用于表示该开发人员所使用的编程语言。在 Eclipse中选中该成员,右键—Source—Generate Getters and Setters…则可以自动生成相应的get、set方法,一开始我并没有去生成这些,但在运行时出错,提示缺少get、set方法。)
代码
package example;
public class Developer {
public IProgrammingLanguage language;
/**
* @return the language
*/
public IProgrammingLanguage getLanguage() {
return language;
}
/**
* @param language the language to set
*/
public void setLanguage(IProgrammingLanguage language) {
uage = language;
}
public String getCurrentUsingLanguage() {
return mI();
}
}
3.5.添加引用
代码
代码
package example;
import Factory;
import eanFactory;
import SystemResource;
import urce;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Resource r = new FileSystemResource("");
BeanFactory f = new XmlBeanFactory(r);
Developer d = (Developer) ean("DeveloperBean");
String s = urrentUsingLanguage();
tln("The developer is currently using: "+s);
}
}
运行此程序可以看到输出是:
The developer is currently using: Perl
现在,假设有一天这个Developer不使用Perl而改用Java了,我们需要做什么?我们并不需要改程序,只需要修改xml文件就行了。