Spring简介
1.简介
Spring是一个开源框架,它由Rod Johnson创建。他是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJb完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。
2.目的:解决企业应用开发的复杂性
3.功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能
4.范围:任何Java应用。
Spring其实就是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架
5.轻量–从大小与开销方面而言Spring都是轻量的完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。
6.控制反转–Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为 IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。
7.面向切面–Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务()管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。
8.容器–Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。
9.框架–Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。
Spring的下载
1.方法
你要在官网的projects里找到spring framework,然后左侧的"小猫"图标,
跳到github,在Downloading artifacts下面 找到 building a distribution with dependencies的超链,
进去后再找 到 the SpringSource repository的超链,接着打开Spring repository FAQ后,
找到libs- release-local,进去后点Artifacts页签,再在左边的列表里先simple brower,
后面的流程和第二步一样
Spring在IDEA中的创建
1.在新建项目中选择Spring应用,在第一次使用的时候,当IDEA未检测到spring的核心库,则会在新建过程中下载对应的文件,当已经下载好Spring的zip包之后可选择路径来添加Spring的核心库。
2.在使用Spring时,必须导入commons-logging.jar包,该包为spring的日志包,commons-logging.jar包下载
使用Spring输出HelloWorld
//创建Hello World类
public class HelloWorld {
private String name;
public void setName(String name){
this.name=name;
}
public void hello(){
System.out.println("name:"+name);
}
public HelloWorld() {
}
}
//创建带main函数的类
public class Main {
public static void main(String[] args){
/**
* 前两步都可以使用spring来进行操作
* */
//创建对象
HelloWorld helloWorld = new HelloWorld();
//为对象赋值
helloWorld.setName("My name is");
//3.调用方法
helloWorld.hello();
}
}
这样调用以后会在控制台输出name:My name is
使用Spring需要使用Spring的配置文件,创建一个Spring的xml配置文件
使用IDEA创建配置文件在src下,右击菜单选择XML Configuration File --> Spring Config 选择以后命名为applicationContext.xml
在改配置文件中进行配置设置
<!--配置bean-->
<bean id="helloWorld" class="com.hongkun.spring.beans.HelloWorld">
<property name="name2" value="Spring"></property>
</bean>
bean 标签内的id为实例化类的命名
class 为需要实例化的类
property标签内的 name属性为需要传值的属性名 value为传进的属性值。
在HelloWorld类中添加一个新属性
public class HelloWorld {
private String name;
private String name2;
public void setName2(String name2) {
this.name2 = name2;
}
public void setName(String name){
this.name=name;
}
public void hello(){
System.out.println("My name is"+name2);
}
public HelloWorld() {
}
}
在main方法中调用
public class Main {
public static void main(String[] args){
// /**
// * 前两步都可以使用spring来进行操作
// * */
// //创建对象
// HelloWorld helloWorld = new HelloWorld();
// //为对象赋值
// helloWorld.setName("qihongkun");
//1.创建Spring的IOC容器对象
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
//2.从IO从容器中获取Bean实例
// HelloWorld helloWorld = (HelloWorld) ctx.getBean("helloWorld");
// //3.调用方法
// helloWorld.hello();
}
}
在控制台输出为 My name is Spring ,证明在xml文件中写入的值成功传入进去。