
Spring Boot是由Pivotal团队开发的一个基于Spring框架的全新框架其设计目的是为了简化新Spring应用的初始搭建以及开发过程。它通过提供默认配置、内嵌式容器等让开发者能够快速构建独立的、生产级别的基于Spring的应用程序。在介绍SpringBoot之前有必要了解下SpringBoot之前的企业级应用服务框架的发展在SpringBoot之前用的是SSM框架(SpringMVC Spring MyBatis),其中使用spring MVC负责请求的转发和视图管理使用spring实现业务对象管理mybatis作为数据对象的持久化引擎。再之前就是SSH框架(Struts2 Spring Hibernate)这两个架构主要区别体现在MVC实现方式和持久层选择上核心架构差异控制器实现SSH使用Struts2作为控制器Action类级别拦截请求通过配置文件或注解处理请求映射SSM采用SpringMVC方法级别拦截请求支持更灵活的RESTful风格接口开发。持久层框架SSH依赖Hibernate全自动ORM框架通过对象关系映射自动生成SQLSSM使用MyBatis半自动ORM框架需手动编写SQL语句灵活性更高。 技术特性对比配置复杂度Struts2配置复杂需XML定义ActionHibernate需配置映射关系SSM简化配置注解或XML管理SQLMyBatis支持灵活的SQL优化。 事务管理两者均由Spring统一管理事务但Hibernate需结合SessionMyBatis需结合SqlSession。 灵活性MyBatis直接操作原生SQL便于调优Hibernate依赖HQL复杂SQL编写受限。 性能与适用场景性能MyBatis在复杂查询场景下性能优于Hibernate避免低效SQL生成。适用场景SSH适合传统企业级应用如ERP、CRMSSM更适合需要灵活SQL控制或RESTful接口的微服务架构。随着SpringBoot的普及SSM架构也成为主流下面着重介绍下SSM的各个功能SpringMVC:负责处理前端请求和视图管理过程如下1、 用户发送请求至前端控制器DispatcherServlet。 2、 DispatcherServlet收到请求调用HandlerMapping处理器映射器。 3、 处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找)生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。 4、 DispatcherServlet调用HandlerAdapter处理器适配器。 5、 HandlerAdapter经过适配调用具体的处理器(Controller也叫后端控制器)。 6、 Controller执行完成返回ModelAndView。 7、 HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet。 8、 DispatcherServlet将ModelAndView传给ViewReslover视图解析器。 9、 ViewReslover解析后返回具体View。 10、DispatcherServlet根据View进行渲染视图即将模型数据填充至视图中。 11、 DispatcherServlet响应用户。Spring:Spring里面的IOC容器和AOP是我们平时使用最多的。1IOC控制反转它可以装载bean也是一种降低对象之间耦合关系的设计思想。比如租房子。以前租房子需要一个房子一个房子找费时费力然后现在加入一个房屋中介把你需要的房型告诉中介就可以直接选到需要的房子中介就相当于spring容器。2AOP面向切面是面向对象开发的一种补充它允许开发人员在不改变原来模型的基础上动态的修改模型以满足新的需求如动态的增加日志、安全或异常处理等。AOP使业务逻辑各部分间的耦合度降低提高程序可重用性提高开发效率。MyBatis:Mybatis是一款基于java的半自动ORM(对象关系映射)持久层框架前身是iBatis,封装了jdbc,开发者需要手动编写sql;框架实现了jdbc样板代码(驱动,connection,statement,参数映射,手动封装对象);核心能力参数绑定结果映射动态sql;缓存一级缓存(map,SqlSession级别,默认开启),二级缓存(Mapper级别手动开启)支持xml/注解方式编写sqlmybatis是对jdbc的封装它让数据库底层操作变的透明。mybatis的操作都是围绕一个sqlSessionFactory实例展开的。mybatis通过配置文件关联到各实体类的Mapper文件Mapper文件中配置了每个类对数据库所需进行的sql语句映射。在每次与数据库交互时通过sqlSessionFactory拿到一个sqlSession再执行sql命令。下面来了解下SpringBoot核心特性自动配置Auto - configurationSpring Boot能够基于项目中添加的依赖、配置和类路径下的内容自动配置Spring应用。通过EnableAutoConfiguration注解开启此功能该注解会导入AutoConfigurationImportSelector类扫描类路径下JAR文件并加载META - INF/spring.factories文件中定义的自动配置类。这些自动配置类依据条件注解如ConditionalOnClass、ConditionalOnMissingBean等决定是否加载相应的Bean极大减少了开发者编写配置代码的工作量。独立运行Standalone ApplicationSpring Boot应用可打包成独立的JAR或WAR文件通过Java命令直接运行无需部署到外部应用服务器。借助Maven或Gradle等构建工具并配置相应插件如Spring Boot Maven Plugin即可实现简化了应用部署和管理流程方便在不同环境中部署和迁移。内嵌容器Embedded Containers 内置Tomcat、Jetty和Undertow等Servlet容器方便开发者开发和测试Web应用。无需单独安装和配置Web服务器降低了部署复杂度还提升了应用性能和可移植性。外部化配置Externalized Configuration鼓励将应用配置与代码分离支持使用.properties、.yml文件、环境变量或命令行参数等多种方式配置应用方便在不同环境下切换配置提高了应用灵活性和可维护性。监控与管理Monitoring and ManagementActuator模块用于监控和管理应用通过暴露一系列端点endpoints开发者可查看应用运行状况、性能指标、日志等信息便于及时发现和解决问题功能包括健康检查、信息查看、环境属性查看、日志查看等。数据访问与集成Data Access and Integration 提供丰富的数据访问和集成支持涵盖Spring Data、Spring JDBC、Spring ORM等开发者能轻松与各种数据源集成如关系型数据库、NoSQL数据库、消息队列等简化了数据访问层开发提高开发效率。安全性Security依托强大的安全框架如Spring Security保护应用资源不被未授权访问。开发者可通过简单配置或注解定制安全策略满足应用特定需求具备身份认证、权限控制、加密解密等功能。测试支持Testing Support提供多种测试支持包括单元测试、集成测试、端到端测试等。可使用JUnit、Mockito等测试框架编写和运行测试并通过Spring Boot Test模块简化测试环境配置和管理提高应用稳定性和质量降低维护成本。Spring事务