主流框架小结

熟悉Spring、SpringMVC、SpringBoot、SpringCloud、Mybatis、Hibernate、Jpa等框架;

Spring框架:理念DI/IOC和AOP容器的框架

    Di;就是依赖注入,比如A类需要一个数据库Connection对象,Spring就会在需要的时候通过反射获得一个Connection,DI的方式两种:构造器或者set注入
	
    IOC:控制反转,这是spring的核心,
        用Spring来负责控制对象的生命周期和对象间的关系,总的来说,就是所有类控制对象的权限交给spring统一管理
 	
    AOP:面向切面编程,将业务逻辑松耦合,提高程序可重用性,相同的业务逻辑抽取,再切入到需要使用这段逻辑的模块中去.包含@ApsectJ注解新功能面,面内@Before @After 等 pointCut和joinput
复制代码
    @Aspect
public class AnnoationAspectJ {

   @Pointcut("execution(* com.bat.aspectJ.App.say(..))")
   public void joinPoint() {
   }
   @Before("joinPoint()")
   public void before() {
       System.out.println("切入前--------");
   }
   @After("joinPoint()")
   public void after() {
       System.out.println("切入后");
   }
}
复制代码
Spring MVC:为了降低jsp和javaBean的耦合
M就是模型,( bean dao)

V:视图,( 网页),

C:控制器,控制视图和模型的一,一对应  
    Service层通过spring的声明式事务操作DAO层,
复制代码

SpringBoot: 为了消除大量配置

	1.	web.xml 为了加载spring和spring mvc
	2.	配置数据库连接,和日志文件
	3.	配置对配置文件的读取,和注解支持
	4. 	mapper映射
复制代码
启动配置	
    用idea 启动spring initial创建工程,此时会生成启动类SpringBootApplication和空测试类SpringBootApplicationTests和Application.properties以及Pom.xml 

    值得注意:
1.@SpringBootApplication 直接代表三个注释(@Configuration、@EnableAutoConfiguration[根据jar包为项目进行自动配置]、@ComponentScan)

2.properties可以直接用yml替代	
    热部署注意:修改代码后及时重启boot,编译新代码
复制代码

	增加jsp支持
	
		1.	包括servlet依赖和tomcat支持
复制代码

		2.	jsp定向
复制代码

		3.	修改RestController的注解为Controller
复制代码

		4.	依照配置新建jsp文件

		5.	等待热部署刷新
复制代码

增加Mybastis支持

		1.	pom.xml
复制代码

        2.	yml增加配置
复制代码

3. 创建相关pojo实体类和Mapper映射

4. Controller调用

5. 写jsp收数据

6.重启boot 因为增加了依赖,热部署失效

	Spring Cloud: 基于spring
	
	boot设计的微服务规范,增强了上下文的一套快速构建分布式系统的一系列框架的有序集合.
复制代码

变革:

从单体架构[一个应用,一个数据库,一个web容器]到垂直架构[业务模块拆分]到服务架构SOA[服务之间用webservice或者dubbo治理] 再到微服务架构

微服务:一种软件架构风格,专注于单一责任和功能的小型功能区为基础,

1.大型系统需要服务拆分精细化,2.各个服务独立部署(多个docker实例),3.服务独立维护,4.服务治理要求高,

				组件协同微服务搭建:
					全览图:
复制代码

1.Eureka 服务的注册和发现,将服务连接起来
2.Hystrix 监控服务调用情况,和提供熔断机制
3.Hystrix dashboard,Turbine 监控熔断情况提供图形化展示
4.SpringCloudConfig 读取Git/SVN的配置,统一的配置文件中心
5.Spring CloudBus 通过和各个客户端通信,下发配置文件的自动refresh	
6.zurl 所有内外的资源请求,都通过网关转发,权限校验
7.Sleuth和Zipkin提供复杂的服务间调用跟踪关系.监控,并记录
复制代码

Mybatis

MyBatis 简介 MyBatis是基于java的持久层框架

为什么使用MyBatis

    传统的jdbc操作需要手动操作Connection Statement ResultSet,使用Mybatis,相比于Hiberhate,上手简单,适合经常的项目变化需求
复制代码

猜你喜欢

转载自juejin.im/post/5d52d6aee51d4561d044ccad