------------------------------------------------纸上得来终觉浅,绝知此事要躬行----------------------------------------------
“对于Java程序员来说,这是一个很好的时代”
一、Spring简介
Spring不是直译的春天,而是一个开源的框架,是为解决企业级应用开发的复杂性而创建的。
1、了解Spring的主要特性
(1)Spring是一个非入侵框架,即使应用程序代码对框架的依赖最小化。在配置JavaBean时甚至可以不需要引用Spring API。
(2)Spring提供了一种一致的,在任何环境下都可以使用的编程模型。该模型可以隔离应用程序代码和运行环境,以使代码对它们的依赖达到最小化。
(3)提高代码重用性。讲应用程序中的某些代码抽象出来(一般在XML中配置),以便这些代码可以在其他程序中使用。
(4)Spring可以使系统架构更容易选择,使应用每一层更容易替换。Spring的分层架构如下图所示:
图中的分层架构目前可做简单了解,在后面的博客中,我会继续写到每一块容器的原理及用途。
2、Spring核心技术
Spring 是一个 控制反转(IOC)、依赖注入(DI) 和面向切面编程(AOP)的容器框架.
当一个对象需要另外一个对象时,在传统的设计过程中,往往需要通过调用者创建被调用者的对象实例。但在Spring中,创建被调用者的工作不再由调用者来完成,也就是说调用者被剥夺了创建被调用者的权力。因此,这种设计模式被称为控制反转。在控制反转模式下,一般被调用者的穿件是由Spring Ioc容器完成的,因此也称为依赖注入。
二、开发一个HelloWorld程序
按照国际惯例,学习一门新的语言首先学的就是怎么输出一个HelloWorld,那么我们在学习Spring框架时,也先来开发一个HelloWorld程序。
首先需要在项目中导入以下核心j容器jar包,当然也可以选择maven方式。
接口 Hello.java
public interface Hello {
String getGreeting();
}
实现HelloImpl.java
public class HelloImpl implements Hello {
private String greeting;
//greeting的属性的getter方法
@Override
public String getGreeting() {
return "hello " + greeting;
}
//greeting的属性的setter方法
public void setGreeting(String greeting) {
this.greeting = greeting;
System.out.println("设置greeting属性");
}
}
配置bean:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="hello" class="load.springDemo.HelloImpl" >
<property name="greeting" value="许你长欢"></property>
</bean>
</beans>
通过装配bean方式获得Hello对象
测试类HelloSpring.java文件
public class HelloSpring {
public static void main(String[] args) {
//装配applicationContext.xml文件
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
//获得被装配的Hello对象实例
Hello hello = (Hello) context.getBean("hello");
//输出greeting属性的值
System.out.println(hello.getGreeting());
}
}
输出:
设置greeting属性
hello 许你长欢
------------------------------------------------纸上得来终觉浅,绝知此事要躬行-------------------------------------------------