基础知识
微服务是将一个原本独立的系统拆分成多个小型服务,这些小型服务都在各自独立的进程中运行。
单体系统的缺点:
- 修改一个小功能,就需要将整个系统重新部署上线,影响其他功能的运行;
- 功能模块互相依赖,强耦合,扩展困难。如果出现性能瓶颈,需要对整体应用进行升级,虽然影响性能的可能只是其中一个小模块;
单体系统的优点:
容易部署,程序单一,不存在分布式集群的复杂部署环境;
容易测试,没有复杂的服务调用关系。
生命不休,学习不止
Spring的自动装配有三种模式:byType(根据类型),byName(根据名称)、constructor(根据构造函数)。
找到与依赖类型相同的bean注入到另外的bean中,这个过程需要借助setter注入来完成,因此必须存在set方法,否则注入失败。
当xml文件中存在多个相同类型名称不同的实例Bean时,Spring容器依赖注入仍然会失败,因为存在多种适合的选项,Spring容器无法知道该注入那种,此时我们需要为Spring容器提供帮助,指定注入那个Bean实例。可以通过<bean>标签的autowire-candidate设置为false来过滤那些不需要注入的实例Bean
1 | <bean id="userDao" class="com.zejian.spring.springIOC.dao.impl.UserDaoImpl" /> |
简单工厂:BeanFactory 就是简单工厂模式的体现,根据传入一个唯一标识来获得 Bean 对象。
1 | @Override |
相对于EJB(Enterprise JaveBean),Spring提供了更加轻量级和简单的编程模型。
Spring可以简化Java开发:1.基于pojo的轻量级和最小侵入式编程;2.通过依赖注入和面向接口实现松耦合;3.基于切面和惯例进行声明式编程;4.通过切面和模板减少样板式代码。
很多框架通过强迫应用继承它们的类或实现它们的接口从而导致应用与框架绑死。Spring竭力避免自身API与应用代码的耦合。Spring不会强迫你实现Spring规范的接口或继承Spring规范的类。
假如两个类相互协作完成特定的业务,按照传统的做法,每个对象负责管理与自己相互协作的对象的引用,这会导致高度耦合。
tag:
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent:
meta: false
pages: false
posts:
title: true
date: true
path: true
text: false
raw: false
content: false
slug: false
updated: false
comments: false
link: false
permalink: false
excerpt: false
categories: false
tags: true