1、对于框架的简单了解(framework)
框架:具有约束性的去支撑我们完成功能的半成品的项目。
约束性:定义的一些标准;
支撑性:其实就是对底层各种功能技术的封装;
半成品的项目:框架不是一个完整的项目,只是提供一个架子,虽然封装了各种技术,但是缺少业务逻辑。框架+业务逻辑=项目(减少代码量)
因为软件系统发展到今天已经很复杂了,特别是服务器端软件,涉及到的知识,内容,问题太多。在某些方面使用别人成熟的框架,就相当于让别人帮你完成一些基础工作,你只需要集中精力完成系统的业务逻辑设计。而且框架一般是成熟,稳健的,他可以处理系统很多细节问题,比如,事务处理,安全性,数据流控制等问题。还有框架一般都经过很多人使用,所以结构很好,所以扩展性也很好,而且它是不断升级的,你可以直接享受别人升级代码带来的好处。
2、Spring概述
1) Spring是一个开源框架
2) Spring为简化企业级开发而生,使用Spring,JavaBean就可以实现很多以前要靠EJB才能实现的功能。同样的功能,在EJB中要通过繁琐的配置和复杂的代码才能够实现,而在Spring中却非常的优雅和简洁。
3) Spring是一个IOC(DI)和AOP容器框架。
4) Spring的优良特性
① 非侵入式:基于Spring开发的应用中的对象可以不依赖于Spring的API。(轻量级,非侵入性:简单理解就是对原来的技术没有影响,就是封装功能)
② 依赖注入:DI——Dependency Injection,反转控制(IOC)最经典的实现。(将我们对 对象的控制权交给程序Spring)
③ 面向切面编程:Aspect Oriented Programming——AOP(是为了对OOP进行补充)
④ 容器:Spring是一个容器,因为它包含并且管理应用对象的生命周期
⑤ 组件化:Spring实现了使用简单的组件配置组合成一个复杂的应用。在 Spring 中可以使用XML和Java注解组合这些对象。(Spring所管理的对象,降低耦合)
⑥ 一站式:在IOC和AOP的基础上可以整合各种企业应用的开源框架和优秀的第三方类库(实际上Spring 自身也提供了表述层的SpringMVC和持久层的Spring JDBC)。
5)Spring模块
2、搭建Spring运行时环境
0)STS下选择Java视图,首先进行preference->workspace->编码设置为UTF-8,JSP Files->编码UTF-8。创建Java Project.
1) 加入JAR包
① Spring自身JAR包:spring-framework-4.0.0.RELEASElibs目录下
spring-beans-4.0.0.RELEASE.jar
spring-context-4.0.0.RELE2ASE.jar
spring-core-4.0.0.RELEASE.jar
spring-expression-4.0.0.RELEASE.jar
② commons-logging-1.1.1.jar
2) 在Spring Tool Suite工具中通过如下步骤创建Spring的配置文件
① File->New->Spring Bean Configuration File
② 为文件取名字 例如:applicationContext.xml
3、Spring使用:使用Spring创建对象,为属性赋值
1) 创建Student类
package com.atguigu.spring.di; public class Student { private Integer id; private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return "Student [id=" + id + ", name=" + name + "]"; } public Student() { super(); } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } }
2) 创建Spring配置文件
<?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>:定义spring所管理的一个对象 id:该对象的唯一标示,注意:不能重复,在通过类型获取bean的过程中可以不设置 class:此对象所属类的全限定名 --> <bean id="student" class="com.atguigu.spring.di.Student"> <!-- 使用property子元素为bean的属性赋值 --> <!-- <property>:为对象的某个属性赋值 name:属性名 value:属性值 --> <property name="id" value="1001"></property> <property name="name" value="kkzhang"></property> </bean> </beans>
3) 通过Spring的IOC容器创建Student类实例
package com.atguigu.spring.di; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Test { public static void main(String[] args) { //1 创建IOC容器对象 ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); //2 根据id值获取bean实例对象 Student s1 = ac.getBean("student", Student.class); //3.打印bean System.out.println(s1); } }