今天开始学习Spring.听闻这个颇为流行的框架已经很久了.之前也写了个简单模拟的IoC容器.所以对Spring充满向往和好奇(⊙﹏⊙b汗).今天主要是学习不得不提的几个概念和如何使用Spring框架.
首先是Spring框架.并不是我之前理解的仅仅是个IoC容器.事实上它是一个基于IoC和AOP构造多层J2EE开发系统的框架.声称是一个轻量级的框架.它以非侵入的方式管理代码.因为使用IoC实现了解耦,它得以组织起其他框架.此外事实上,它还提供了其他的很多企业级服务(JNDI,JMS,持久化,事务管理服务等).如果以提供服务多少为评价标准的话,Spring可以称为重量级.当然,单纯以我们一般使用的spring-core包论,是轻量级的.
然后,IoC(Inversion of Control)机制,反向控制是指对象的生命周期不再由调用者控制而是反转到了容器.幸而之前写过手工IoC容器.大致知道容器内部如何创建对象,提供对象(没写销毁).下一个问题是,容器怎么知道创建什么样的对象?当然是配置文件(我们用的是XML).在其中写入<beans>标签下写入<bean>标签指定它的id和class属性,(根据之前的手工IOC推测)id用于标识创建后存入容器里的对象,class则是用于反射得到对象.这是IoC负责的范围.
下一个概念是DI(dependency injection),依赖注入.容器中已经有了需要的bean了,下一步是把bean给有需求的.这个过程就是依赖注入.在调用者类中,写入一个私有属性(一般为接口方便扩展),加入setter,就可以在需要的时候通过setter把内容给它.(这个是设值注入.如果是构造注入, 就是将私有属性作为构造器的参数,直接注入到构造器中).
事实上,个人理解,解耦的过程既是将对象读到容器,再在适合的时候注入到类中.反射机制扮演的角色就是使Spring可以非侵入的方式来提供服务.
如何使用Spring框架.还是那么几步,下载源码,加入Java包,然后写配置文件,然后使用.配置文件提供了很多的功能,因而相当灵活.比如提供了设值注入和构造注入,提供lazy-init,提供scope来决定是否为prototype或者singleton(我才知道prototype是设计模式,scope默认的是singleton),提供了自动装配的方式(autowire=byName,byType,constructor,autodetect).
下午还尝试看一些介绍SpringIoC的文章,大块大块的代码搞得我有点晕乎乎的.收获还是有的,至少知道了BeanFactory和ApplicationContext等 Context的区别.BeanFactory定义的是基本的接口,ApplicationContext等则是在此基础上做的强化,提供更多的服务.因此一般都是直接用Context.还了解到,虽然用的很多是xml,但是只是一种数据源其实还可以用到FileSystem,DB等等.只要有相应的ApplicationContext就可以.
OK,期待明天...
分享到:
相关推荐
初学者通过“初识Spring框架-资料.rar”这个压缩包,可以系统地了解和学习Spring的基本概念、核心特性以及在实际开发中的应用。 1. **Spring概述**: Spring最初由Rod Johnson创建,旨在解决企业应用开发的复杂性...
### 初识 Spring Security #### 一、Spring Security 概述 **Spring Security**是一种广泛应用于Java企业级项目中的安全框架,它基于Spring AOP(面向切面编程)和Servlet过滤器来提供全面的安全解决方案。该框架...
本资源是一篇关于学习和应用SSM框架(Spring、SpringMVC、MyBatis)的学习记录系列文章中的第六天内容,主题为初识Spring框架。 在这一部分中,你将了解到Spring框架的基本概念和使用方法,并通过实例探讨了Spring ...
读书笔记:Spring Boot 实战1初识Spring Boot
总结_初识Spring Boot(填空版).xmind
SpringCloud 核心技术初识微服务解决方案 SpringCloud 是一个基于 Java 语言的微服务架构解决方案,由 Netflix 公司开发,旨在帮助开发者快速构建可靠的微服务系统。 SpringCloud 的核心技术包括服务注册、服务...
Spring MVC 是一个基于 Java 的轻量级 Web 开发框架,它是 Spring 框架的重要组成部分,主要用于构建 MVC(Model-View-Controller)架构的 Web 应用程序。本篇文章将深入探讨 Spring MVC 的核心概念、工作原理以及...
【Spring的基本应用】是Java EE企业级应用开发中不可或缺的一部分,尤其在Spring+Spring MVC+MyBatis的组合中,Spring作为基础框架扮演着至关重要的角色。本章内容主要涵盖Spring的核心容器、依赖注入以及Spring的...
在Java开发领域,Spring框架是不可或缺的一部分,尤其对于企业级应用开发来说,Spring扮演着至关重要的角色。本文将深入探讨Spring框架的核心概念,包括它的系统架构以及如何通过IOC(Inversion of Control)和DI...
《初识Spring 5:从新手到专家》是一本针对Java开发者深入了解和学习Spring框架的指南。Spring作为Java企业级应用开发的主流框架,它的第五个主要版本带来了许多改进和新特性,旨在提升开发效率和应用程序的灵活性。...
01.初识 Spring Security 02.Spring Security 初体验 03.基于内存定义 Spring Security 用户 04.Spring Security 自定义表单登录 05.Spring Security 登录表单配置细节 06.Spring Security 表单登录源码 07.Spring ...
综上所述,《跟我学Spring3》PDF文档是一个宝贵的学习资源,无论你是初识Spring,还是希望深入理解其精髓,都能从中受益。通过阅读这两部分PDF(跟我学spring3(8-13).pdf和跟我学spring3(1-7).pdf),你将能够逐步...
第一天:初识Spring Cloud 1. Spring Cloud概述:了解Spring Cloud的发展背景,理解其在微服务架构中的地位和作用。 2. Eureka服务注册与发现:学习如何使用Eureka实现服务的注册与发现,理解服务注册与发现的重要性...
IOC-InversionofControl,译为控制反转,是一种遵循依赖倒置原则的代码设计思想。所谓依赖倒置,就是把原本的高层建筑依赖底层建筑“倒置”过来,变成底层建筑依赖高层建筑。高层建筑决定需要什么,底层去实现这样的...