Spring
Spring Framework 开发参考手册 : http://shouce.jb51.net/spring/
Spring不仅是一个技术框架,而且是一个完整的生态。最重要的就是扩展性。
IOC 容器
| 概念 | 实现方式 | 进化过程 | 实现方式 |
| IOC | 反射 | new 对象->工厂模式生成对象->IOC容器 | xml,注解,java |
| AOP | 动态代理(jdk,cglib) |
OOP 面向对象编程更多的是继承关系,上下关系。
AOP 面向切面编程是横向关系
@Configuration 类上加
该类等价 与XML中配置beans,相当于Ioc容器,它的某个方法头上如果注册了@Bean,就会作为这个Spring容器中的Bean,与xml中配置的bean意思一样。
@Autowired与@Resource的区别?
@Autowired,Spring提供的注解默认按类型,如果想使用名称进行装备可以和@Qualifire一起使用
@Resource J2EE提供的注解,默认按名字
什么叫做Aspect切面(连接点,切点,通知所在的类叫做切面)。切点是连接点的集合
@Service,通常用于service类,也就是服务层
@Component,
@Repository通常用于Dao类,也就是持久层
,@Controller通常用于Controller类,也就是控制层(MVC结构)
Aspect Oriented Programming面向切面编程
观察者模式:在Spring容器中,有一系列的监听器(不止监听Bean的创建和销毁),用来完成,在不同的阶段做不同的处理工作。
AbstractApplicationContext.refresh()
#########################################################################################################################
Springboot
Springboot Starters 用过哪些?工作原理是什么?
说一些常用的就可以,比如下面几个
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- mybatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.3</version>
</dependency>
工作原理:
Springboot的核心注解有哪些?
- 启动类上面的注解是@SpringBootApplication,它是个组合注解。也是 Spring Boot 的核心注解,主要组合包含了以下 3 个注解:
- @SpringBootConfiguration:组合了 @Configuration 注解,实现配置文件的功能。
- @EnableAutoConfiguration:打开自动配置的功能,也可以关闭某个自动配置的选项,如关闭数据源自动配置功能: @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })。
- @ComponentScan:Spring组件扫描。
Springboot怎么支持事务?
各服务之间通信,对Restful和RPC这2种方式如何做选择?
在传统的SOA治理中,使用RPC的居多;Spring Cloud默认使用restful进行服务之间的通讯。RPC通讯效率会比restful要高一些,但是对于大多数公司来讲,这点效率影响甚微。我建议使用restful这种方式,易于在不同语言实现的服务之间通讯。
Spring Cache 三种常用的缓存注解和意义?
@Cacheable ,用来声明方法是可缓存,将结果存储到缓存中以便后续使用相同参数调用时不需执行实际的方法,直接从缓存中取值。
@CachePut,使用 @CachePut 标注的方法在执行前,不会去检查缓存中是否存在之前执行过的结果,而是每次都会执行该方法,并将执行结果以键值对的形式存入指定的缓存中。
@CacheEvict,是用来标注在需要清除缓存元素的方法或类上的,当标记在一个类上时表示其中所有的方法的执行都会触发缓存的清除操作。
本文深入探讨Spring框架的核心概念,包括IOC容器、AOP、面向切面编程等,并介绍了Spring Boot的特性及其核心注解@SpringBootApplication的工作原理。此外,还讨论了Spring Boot支持的常用Starters及缓存注解。
969

被折叠的 条评论
为什么被折叠?



