发表于: 2017-07-27 23:51:47
1 1135
【今日完成】
今天主要是阅读Spring In Action第一部分的内容,理解了基本的Spring知识点,现将知识点做一个小总结:
一:Spring是干什么用的?
Spring框架的目的是让JAVA开发变得更简单,为了简单,它有四个策略:
1、让简单的POJO也能发挥巨大作用,减少侵入性;
2、通过DI实现类与类之间的解耦;
3、基于AOP和惯例进行声明式编程;
4、通过切面和模板来减少代码;
简单解释一下:
第一点是通过配置JAVABean,来使得POJO能被识别出来,这样无需在POJO中编写特殊代码也能使用;
第二点是通过依赖注入,让依赖的类之间彼此在JAVA代码中没什么联系,但是Spring会自动生成实体Bean注入;
第三点是把一些共通的非业务代码定义成切面,随时可以调用;
第四点是Spring有一些模板,比如JdbcTemplate,使得只需要写核心的业务代码即可,不用关心其他的非业务代码;
二:什么是DI?
DI即依赖注入,乍听上去觉得高大上,其实就是把依赖的类自动注入到需要的类中。
创建应用对象之间协作关系的行为通常称为装配(wiring),DI的本质就是装配。
装配有三种方案 1 在XML中进行显式配置。
2 在Java中进行显式配置。
3 隐式的bean发现机制和自动装配。
最被鼓励使用的是隐式的自动装配,毕竟不用写很多代码:
隐式主要通过下面两个方法来装配:
1、组件扫描(component scanning):Spring会自动发现应用上下文中所创建的bean。
2、自动装配(autowiring):Spring自动满足bean之间的依赖
有时候无法隐式装配,那么可以用JAVA配置类(即使用JAVA配置类也不要用XML):
首先是创建配置类,创建JavaConfig类的关键在于为其添加@Configuration注解。
在JavaConfig中装配bean的最简单方式就是引用创建bean的方法。这表明这个方法会创建一个bean实例并将其注册到Spring应用上下文中
三:Spring的容器
Spring中的Bean都在容器中,而容器分为两类(每一类都有多种):一类是bean工厂(由org.springframework. beans.factory.eanFactory接口定义)
另一类是应用上下文(由org.springframework.context.ApplicationContext接口定义)
bean工厂基本无法满足开发,这里说一下应用上下文:
经常遇到的应用上下文有五种:
①AnnotationConfigApplicationContext:从一个或多个基于Java的配置类中加载Spring应用上下文。
②AnnotationConfigWebApplicationContext:从一个或多个基于Java的配置类中加载Spring Web应用上下文。
③ClassPathXmlApplicationContext:从类路径下的一个或多个XML配置文件中加载上下文定义,把应用上下文的定义文件作为类资源。
④FileSystemXmlapplicationcontext:从文件系统下的一个或多个XML配置文件中加载上下文定义。
⑤XmlWebApplicationContext:从Web应用下的一个或多个XML配置文件中加载上下文定义。
四:Spring框架由哪些部分组成
如下图所示:Spring有六大模块:
在Spring框架的范畴内,Spring有简化Java开发的多种方式。但在Spring框架之外还存在一个构建在核心框架之上的庞大生态圈,它
将Spring扩展到不同的领域,例如Web服务、REST、移动开发以及NoSQL。
五:如何书写AOP
下图就是把一个Bean变成AOP的XML配置
【明日计划】:继续看Spring,感觉还没理解透彻。然后学习Debug调试
【遇到的问题】:Spring虽然可以通过注解,但要启动框架,是不是应该配置一个总的XML文件呢?(不然程序都不知道要使用Spring)
也就是说Spring只需要一个总的config,然后其他的配置都可以通过注解完成?
【今日收获】:学习了Spring基础,搞懂了看似高深的AOP与DI。
评论