spring(一)

本文介绍了Spring框架的基础知识,包括Spring的起源、优势、体系结构以及核心特性。重点讲解了Spring的IoC(控制反转)和DI(依赖注入)概念,通过配置文件展示了如何创建对象、使用静态和实例工厂方法实例化对象、设置属性注入,以及不同类型的依赖注入。此外,还涵盖了Spring的生命周期管理和使用注解实现依赖注入。最后,提到了Spring与JDBC的整合,演示了如何使用JdbcTemplate进行数据库操作。
摘要由CSDN通过智能技术生成

Spring第一天笔记

Spring简介

Spring是什么
Spring是一个开源框架,它由RodJohnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。
目的:解决企业应用开发的复杂性
功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能
范围:任何Java应用
简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

Spring的优势

1、方便解耦,简化开发

Spring 就是一个大工厂,可以将所有对象创建和依赖关系维护,交给 Spring 管理
2、AOP 编程的支持
Spring 供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能
3、声明式事务的支持
只需要通过配置就可以完成对事务的管理,而无需手动编程

4、方便程序的测试
Spring 对 Junit 支持,可以通过注解方便的测试 Spring 程序
5、方便集成各种优秀框架
Spring 不排斥各种优秀的开源框架,其内部 供了对各种优秀框架(如:Struts、Hibernate、MyBatis、Quartz 等)的直接支持
6、降低 JavaEE API 的使用难度
Spring 对 JavaEE 开发中非常难用的一些 API(JDBC、JavaMail、远程调用等),都供了封装,使这些 API 应用难度大大降低

Spring的体系结构

如果作为一个整体,这些模块为你提供了开发企业应用所需的一切。但你不必将应用完全基于Spring框架。你可以自由地挑选适合你的应用的模块而忽略其余的模块。
就像你所看到的,所有的Spring模块都是在核心容器之上构建的。容器定义了Bean是如何创建、配置和管理的——更多的Spring细节。当你配置你的应用时,你会潜在地使用这些类。但是作为一名开发者,你最可能对影响容器所提供的服务的其它模块感兴趣。这些模块将会为你提供用于构建应用服务的框架,

Spring入门

Spring环境搭建
1)引入spring依赖的jar文件
Jar包下载地址:http://repo.springsource.org/libs-release-local/org/springframework/spring/
解压后:

  • docs :API 和开发规范.
  • libs :jar 包和源码.
  • schema :约束.

Spring 开发中所需的jar 包
spring-beans-4.3.6.jar
所有应用都要用到的,它包含访问配置文件、创建和管理 bean
及进行 Inversion of Control / Dependency Injection(IoC/DI)操作相关的所有类
spring-context-4.3.6.jar
Spring 供在基础 IoC 功能上的扩展服务,此外还 供许多企业级服务的支持 , 如邮件服务、任务调度、JNDI 定位、EJB 集成、远程访问、缓存以及各种视图 层框架的封装等。
spring-core-4.3.6.jar

包含 Spring 框架基本的核心工具类,Spring 其它组件要都要使用到这个包里 的类 , 是其它组件的基本核心。

spring-expression-4.3.6.jar
Spring 表达式语言
commons-logging-1.2.jar
第三方的主要用于处理日志

2、创建一个对象 提供set和get方法
public class User {
private String name;
private Integer age;
}

3、书写配置注册对象到容器
建立xml文件,建议放在src下,文件名建议applicationContext.xml
配置文件头信息 (可以在api文件中bean.html查看)

<?xml version="1.0" encoding="UTF-8"?>

<bean id="user" class="beike.spring.pojo.User"></bean>

4、编写代码测试

@Test
public void testDemo1() {
//1.创建容器对象,相对于src下的路径
ApplicationContext ac=new ClassPathXmlApplicationContext(“applicationContext.xml”);
//2.向容器“要”user对象
User u=(User) ac.getBean(“user”);
//3.打印user对象
System.out.println(u);
}

导入约束
编写application.xml配置文件时发现,如果没有网络则没有提示。我们可以导入本地约束文件
Preference–>XML Catalog–>Add–>FileSystem–>Spring目录下的Schema–>beans–>选择最新版
在 Add XML Catalog Elementy页面 ,key type选择Schema location,key后面加上刚才添加的文件名。(意义是eclipse单机情况下也能找到该约束)

配置文件解析(applicationContext.xml)
将User对象交给spring容器管理 ,其中name任意,class为全包名
class属性:被管理对象的完整类名
name属性:给被管理的对象起个名字

SpringIOC讲解

Ioc概念
springIOC:IOC是Inversion of Control的缩写,多数书籍翻译成“控制反转”,还有些书籍翻译成为“控制反向”或者“控制倒置”。
1996年,Michael Mattson在一篇有关探讨面向对象框架的文章中,首先提出了IOC 这个概念。对于面向对象设计及编程的基本思想,前面我们已经讲了很多了,不再赘述,简单来说就是把复杂系统分解成相互合作的对象,这些对象类通过封装以后,内部实现对外部是透明的,从而降低了解决问题的复杂度,而且可以灵活地被重用和扩展。IOC理论提出的观点大体是这样的:借助于“第三方”实现具有依 赖关系的对象之间的解耦 如下图

由于引进了中间位置的“第三方”,也就是IOC容器,使得A、B、C、D这4个对象没有了耦合关系,齿轮之间的传动全部依靠“第三方”了, 全部对象的控制权全部上缴给“第三方”IOC容器,所以,IOC容器成了整个系统的关键核心,它起到了一种类似“粘合剂”的作用,把系统中的所有对象粘合 在一起发挥作用,如果没有这个“粘合剂”,对象与对象之间会彼此失去联系,这就是有人把IOC容器比喻成“粘合剂”的由来

Spring的工厂(容器)
1)ApplicationContext:
ApplicatioContext 接口有两个实现类:

ClassPathXmlApplicationContext :加载类路径下 Spring 的配置文件.
FileSystemXmlApplicationContext :加载本地磁盘下 Spring 的配置文件.

ApplicationContext的特点
每次容器启动时就会创建容器中配置的所有对象.并提供更多功能
从类路径下加载配置文件:ClassPathXmlApplicationContext
/**

  • 方法一:
    在类路径下寻找配置文件来实例化容器
    */

// 使用 applicationContext 加载 spring 容器

// 如果定义成数组一次可以加载多个 spring 容器
ApplicationContext ac = new ClassPathXmlApplicationContext(new String[] {“com/offcn/di/beans.xml”});

方法二:从硬盘绝对路径下加载配置文件:FileSystemXmlApplicationContext(“d:/xxx/yyy/xxx”)

  • 方法二: 在文件系统路径下寻找配置文件来实例化容器
    */
    ApplicationContext ac = new FileSystemXmlApplicationContext(new Strin
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值