2021-02-02

框架的简单了解—day01

框架的简单介绍

框架:在开发过程中,把一些具体的内容进行抽取,然后分层会更加的清晰,简单。框架的本质还是java代码,我们在正常的使用过程中,通过自己的业务需求,去写具体的java代码,使用的设计模式等,它会调用底层框架,来完成具体的操作

框架有通用框架,专门框架(公司内部封装的,只会在自己的公司内部使用,大公司为了安全考虑),我们在使用时基本都使用一些通用的。

常用的框架:

持久层的框架:mybatis,mybatis-plus,hiberenate,jdbctemplete,springdata jpa等

控制层的框架:struts2,springmvc,boot

视图层的框架:layui,bootstrap,easyiu,freemarker,themmf等

通用框架:

spring(用来管理整个项目中,控制层,持久层,它们需要bean的时候,都交给spring给我们创建)

springmvc(进行项目中的控制层的操作)

springboot(springmvc的整合,更加简单)

hibernate,mybatis(进行数据库的操作)

shiro(项目中的安全管理,权限管理)

springcloud(项目架构)

druid(数据库的连接池)

log4j(日志管理)

现在在市场上简单的框架以及服务器的相关内容

WEB服务器:Weblogic、Tomcat、WebSphere、JBoss、Jetty

核心框架:Spring Framework

分布式服务框架 Dubbo

安全框架:Apache Shiro

视图框架:Spring MVC

服务端验证:Hibernate + Validator

布局框架:SiteMesh

工作流引擎:Activiti

任务调度:Spring Task + Quartz

持久层框架: MyBatis + MyBatis-Plus

数据库连接池:Alibaba Druid

缓存框架:Ehcache 、Redis

日志管理:SLF4J 、Log4j

会话管理:Spring-Session

工具类:Apache Commons、Jackson 、Xstream、Dozer 、POI

消息队列: ActiveMQ

云存储:阿里云 OSS 腾讯云 COS 七牛云

版本管理: git(推荐) svn

常用的框架组合

1.ssh—spring+struts2+hibernate(比较老的框架组合,现在很少使用它来完成操作,学习成本高,存在漏洞)

2.ssm—spring+springmvc+mybatis(当前都使用的一个框架组合,简单方便,安全)

3.springboot+mybatis(jpa或hibrenate),都想要使用的

4.高层的框架,软件架构层的框架(springcloud—微服务结构;dubbo(阿里出的进行微服务的架构);springcloud alibaba(它是由于原先的不更新了,阿里给了微服务架构))。微服务的实现都使用springboot来实现

Spring框架(最常用的框架)

1.它主要解决项目中对bean的管理,其实就是对对象的创建

2.进行切面编程。就是一个横切面,代码走到这个横切面上就会触发事件。

Spring 框架是一个开源的javaee框架,主要完成对bean的生命周期进行管理的一个轻量级的容器(就是它可以创建,销毁bean的整个过程),Spring现在已经非常成熟

3.spring提供了强大的ioc(对bean的管理),aop(面向切面编程)以及符合mav等功能。

4.Spring最简单的方式使用java程序就可以完成bean的创建,以及切面编程,也就是创建java项目就可以使用(1.java项目 2.spring+springmvc+shiro+mybatis做成web项目 3.maven项目

4.gradle项目)

Spring框架的7大模块

1.spring core(spring核心)

核心容器提供Spring框架的基本功能(Spring Core)。核心容器的主要组件是BeanFactory,它是工厂模式的实现BeanFactory使用控制反转(IOC)模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。(当你想在你的项目中使用bean的创建的时候, 就直接使用core这个组件就可以)

2.spring orm(spring的对象关系映射)

Spring ORM:负责框架中对象关系映射,提供相关ORM 接入框架的关系对象管理工具 。Spring 框架插入了若干个ORM框架,从而提供了 ORM 的对象关系工具,其中包括JDOHibernateiBatisSQL Map。所有这些都遵从 Spring 的通用事务和 DAO 异常层次结构。(想使用框架来完成数据库的操作的时候: jpa的操作—orm)

3.spring dao(数据库的操作层)

Spring DAO:JDBCDAO抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)。Spring DAO 的面向 JDBC 的异常遵从通用的 DAO 异常层次结构。(数据库的操作的时候—dao)

4.spring context(spring的上下文)

spring 上下文:Spring 上下文是一个配置文件,向 Spring框架提供上下文信息。Spring 上下文包括企业服务,例如JNDI、EJB、电子邮件、国际化、校验和调度功能。

5.spring web(进行web开发的时候需要这个web)

spring Web 模块:Web 上下文模块建立在应用程序上下文模块之上,为基于 Web 的应用程序提供了上下文。所以,Spring框架支持与 Jakarta Struts 的集成。Web 模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。

6.spring web mvc(进行控制层的时候使用)

Spring MVC 框架:MVC框架是一个全功能的构建 Web应用程序的 MVC 实现。通过策略接口,MVC框架变成为高度可配置的,MVC 容纳了大量视图技术,其中包括 JSP*、Velocity**、Tiles、iText* 和 POI。

7.spring aop(spring的面向切面编程)

Spring AOP:通过配置管理特性,Spring AOP 模块直接将面向切面的编程功能集成到了 Spring 框架中。所以,可以很容易地使 Spring 框架管理的任何对象支持AOP。Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务。通过使用 Spring AOP,不用依赖 EJB 组件,就可以将声明性事务管理集成到应用程序中。

Spring的特点

轻量

轻量—从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布(他占用的空间比较小)。并且Spring所需的处理开销(就是使用内存处理比较小)也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。(启动,以及运行的时候他都占用空间比较的小)

控制反转(IOC)

ioc-控制反转——Spring通过一种称作控制反转(IOC)的技术促进了低耦合。这个控制反转的意思是,我们对bean的控制权发生了变化,在以前bean的创建的时候是由程序员自己来创建对用的这个bean, 现在使用spring之后,控制权发生反转,不再是程序员创建bean,而是spring容器进行创建。(控制权从程序员的手里转换到spring容器中)

依赖注入(di)

依赖注入—就是由spring给我们注入我们需要的bean。

例子:在生活中,要找一个对象,你自己到处溜达;自己要通过自己的方式去找对的对象。 现在要找对象的时候,可以把这个事情外包(外包给婚介公司(网络上的婚恋网站),也就是把要求告诉你的婚介所,或者网络上写好你的要求, 这个时候你就不需要找,这个事情就控制权反转给你的婚介所,婚恋网站),他会帮你去给你找到需要的这个对象。spring其实就充当的是这个婚介所;(只要给他发去要创建bean的要求,spring就会帮我们创建这个bean;) 他会根据我们的需求进行创建对象;然后把这个注入你的调用者。

Ioc和di都是对bean的管理;

面向切面(aop)

面向切面(aop)—Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。

面向切面编程—aop 就是说我们在编写程序的时候,我们可以把我们的程序中的的功能—就是具体的业务 进行执行,但是在执行的过程中,设置切面(平面),当你要进行哪个业务的时候,就触发我们的切面里边的程序,就可以完成我们除了主流业务之外的其他操作。(写日志操作)

例子:我们去银行,主流的业务(存钱,取钱,转账,办卡,以及我们的查询操作;) 他们属于我们的主流业务。当你去银行,你走到这个银行门口,门一下开了,并且银行这个监控器对你进行监控, 当你进入到银行里边的时候,一直都被监控着。我们这个切面主要进行监控操作,他不会影响你的主流的业务。

我们的主流业务上经常会有我们的切面: 当你的业务走到这个切面上就会触发相关事件。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值