【Spring是什么?】
1.Spring是一个开源框架。
2.Spring为简化企业级应用开发而生,使用Spring可以使简单的JavaBean实现以前只有EJB(EJB是sun的JavaEE服务器端组件模型,设计目标与核心应用是部署分布式应用程序。简单来说就是把已经编写好的程序(即:类)打包放在服务器上执行)才能实现的功能。
3.Spring是一个IOC(DI)和AOP容器框架。
具体描述:
--轻量级:Spring不具有侵入性-基于Spring开发的应用中的对象可以不依赖于Spring的API。
--依赖注入(IOC、DI-dependency injection)
--面向切面编程(AOP-aspect oriented programming)
--容器:Spring是一个容器,因为它包含并且管理应用对象的生命周期
--框架(胶水框架):Spring实现了使用简单的组件配置组成一个复杂的应用。在Spring中可以使用XML和Java注解组合这些对象。
--一站式:在IOC和AOP的基础上可以整合各种企业应用的开源项目和优秀的第三方类库(实际上Spring自身也提供了展现层的SpringMVC和持久层的Spring JDBC)
【Spring模块】
【优点】
1.将更多的框架整和到一起,使开发变得更加简单方便。
2.面向接口编成,降低了程序的复杂度。
3.在web开发中,使得测试变得更加简单、方便。
4.自身就包含了较多的组件,使得web开发变得更加容易(SpringMVC目前已经大量的替代了Strus2)。
【搭建Spring开发环境】
1.把以下jar包导入到工程的classpath下(lib文件夹中):
2.Spring的配置文件:一个典型的Spring项目需要创建一个或多个Bean配置文件,这些配置文件用于在Spring IOC容器里配置Bean。Bean的配置文件可以放在classpath下,也可以放在其他目录下。
【创建Spring项目】
HelloWorld.java:
1 package com.hk.beans; 2 3 public class HelloWorld { 4 5 private String name; 6 7 public void setName(String name) { 8 //System.out.println("setName:" + name); 9 this.name = name; 10 } 11 12 public void hello(){ 13 System.out.println("hello:" + name); 14 } 15 16 /* 17 public HelloWorld(){ 18 System.out.println("HelloWorld's Constructor..."); 19 } 20 */ 21 }
Main.java:
1 package com.hk.beans; 2 3 import org.springframework.context.ApplicationContext; 4 import org.springframework.context.support.ClassPathXmlApplicationContext; 5 6 public class Main { 7 public static void main(String[] args) { 8 /* 9 //这两步可以交给Spring来完成 10 * 11 //创建HelloWorld的一个对象 12 HelloWorld helloWorld = new HelloWorld(); 13 //为name属性赋值 14 helloWorld.setName("猩生柯北"); 15 */ 16 17 //1.创建 Spring 的IOC 容器对象 18 ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); 19 20 //2. 从IOC容器中获取Bean实例 21 HelloWorld helloWorld = (HelloWorld) ctx.getBean("helloWorld"); 22 23 //3. 调用hello方法 24 helloWorld.hello(); 25 } 26 27 }
applicationContext.xml:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://www.springframework.org/schema/beans 5 http://www.springframework.org/schema/beans/spring-beans.xsd"> 6 7 <!-- 配置bean --> 8 <bean id="helloWorld" class="com.hk.beans.HelloWorld"> 9 <property name="name" value="Spring"></property> 10 </bean> 11 12 13 </beans>
【运行结果】
1.在不用Spring框架的情况下:
2.使用Spring框架的情况下:
3.只创建Spring IOC容器对象的情况下:(这里为HelloWorld.java的setName方法添加一个输出语句以及添加一个无参但方法体内包含一个输出语句的构造方法)
注:只创建容器情况下,在创建这个容器的时候它会调用HelloWorld()构造器,对在配置文件中配置的bean进行初始化,对象创建了,同时对调用set方法对那个相对应的属性赋值,所以第二步(2. 从IOC容器中获取Bean实例)和第三步(3. 调用hello方法)就顺理成章了。