发表于: 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。





返回列表 返回列表
评论

    分享到