SSM和SSH

ssm

一,简介
SSM框架是Spring,SpringMVC和MyBatis的统称。
二,具体总结
1,Spring框架是一个开源的轻量级的Java平台,它的目的是解决企业级应用开发的复杂性,即简化Java开发。Spring可以做很多事情,它为企业级开发提供了丰富的功能,但是这些功能的底层都依赖于它的三个特性,也就是依赖注入(dependency injection,DI),控制反转(Inversion of Control,IOC)和面向切面编程(aspect-oriented programming,AOP)。
1.1,依赖注入:当编写一个复杂的应用程序时,应用程序中的类应该减少重用的可能性,也就是降低耦合,DI可以将这些类粘合起来,并且保持它们各自的独立性。通常依赖注入的方法有三种,分别为构造函数注入,setter注入和接口注入,Spring框架中只用构造函数和setter注入。
1.2,控制反转:调用者不负责被调用者的实例创建工作,而是把给工作交由Spring框架中的容器来负责。将对象交给容器管理,只需要在spring配置文件中配置相应的bean,以及设计好相关的属性,让spring容器来生成类的实例对象以及管理对象。在spring对象启动时,spring会把配置文件中配置的bean初始化好,然后再你需要调用的时候把那些初始化好的bean分配给需要调用这些bean的类(假设为A),分配的方法就是调用A的setter方法来注入,而不需要在A中new这些bean。
1.2.1,Spring核心容器有Spring Core,Spring Bean,Spring Context,SPEl(Spring Expression Language)。
1.2.2,Spring bean是构成用户应用程序的主干,由Spring IOC容器进行管理,实现实例化,配置,装配。
1.2.3,Spring bean生命周期:
  • Spring容器根据配置中定义的bean实例化bean。
  • Spring使用依赖注入填充所有属性,如bean中所定义的配置。
  • 如果bean实现BeanNameAware接口,则工厂通过传递bean的id调用setBeanName()。
  • 如果bean实现BeanFactoryAware接口,工厂通过传递自身实例来调用setBeanFactory()。
  • 如果为bean指定了init方法,那么将调用它。
  • 如果存在与bean关联的任何BeanPostProcessors,则将调用preProcessBeforeInitialization()方法。
  • 如果bean实现DisposableBean接口,当Spring容器关闭时,会调用destory()。
  • 如果为bean指定了destory方法,那么将调用它。
1.3,面向切面编程:在面向切面编程思想中,把功能分为核心业务功能和周边业务功能,周边功能在Spring的AOP思想中,被定义为切面,在AOP思想中,核心业务思想和切面功能独立开发,然后把切面功能和核心业务功能“编织”起来,就叫AOP。AOP可以减少系统的重复代码,降低模块间的耦合度,有利于未来的可拓展性和可维护性。
1.4,Spring常用注解
1.4.1,声明bean的注解:

@Component:没有明确的角色,只是一个bean组件。
@Repository:作用于持久层
@Service:在业务逻辑层使用(service层)
@Controller:声明控制器

1.4.2,注入bean的注解:

@Autowired:由Spring提供,当Spring发现@Autowired注解时,将自动在代码上下文中找到和其匹配的bean,并自动注入。

1.4.3,java配置类相关注解:

@Configuration: 声明当前类为配置类,相当于xml形式的Spring配置(类上)
@Bean 注解在方法上,声明当前方法的返回值为一个bean,替代xml中的方式(方法上)
@Configuration 声明当前类为配置类,其中内部组合了@Component注解,表明这个类是一个bean(类上)
@ComponentScan 用于对Component进行扫描,相当于xml中的(类上)
@WishlyConfiguration 为@Configuration与@ComponentScan的组合注解,可以替代这两个注解

2,SpringMVC是一个MVC的开源框架,SpringMVC=struts2+spring,M代表模型(Model),就是数据;V代表视图(View),就是用来展示模型中数据的网页,jsp;C代表控制器(Controller),控制器就是把不同的数据显示在视图上,Servlet就是扮演这种角色。
2.1,SpringMVC执行流程:

在这里插入图片描述
1)用户发送请求至前端控制器DispatcherServlet
2)DispatcherServlet收到请求调用处理器映射器HandlerMapping。
3)处理器映射器根据请求url找到具体的处理器,生成处理器执行链HandlerExecutionChain(包括处理器对象和处理器拦截器)一并返回给DispatcherServlet。
4)DispatcherServlet根据处理器Handler获取处理器适配器HandlerAdapter执行HandlerAdapter处理一系列的操作,如:参数封装,数据格式转换,数据验证等操作
5)执行处理器Handler(Controller,也叫页面控制器)。
6)Handler执行完成返回ModelAndView
7)HandlerAdapter将Handler执行结果ModelAndView返回到DispatcherServlet
8)DispatcherServlet将ModelAndView传给ViewReslover视图解析器
9)ViewReslover解析后返回具体View
10)DispatcherServlet对View进行渲染视图(即将模型数据model填充至视图中)。
11)DispatcherServlet响应用户。

3,MyBatis是一个半ORM(对象关系映射)框架,它封装了JDBC,开发时只需要关注SQL本身,不需要花费精力去处理加载驱动,创立链接,创建statment等过程。程序员直接编写原生态sql,可以严格控制sql性能,灵活度高。

ssh

一,简介
SSH框架是Spring,SpringMVC和Hibernate的统称。
二,具体总结
1,Hibernate是一个基于元数据的轻量级ORM框架。
2,Hibernate开发步骤:
  • 创建持久化类
  • 创建对象-关系映射文件
  • 创建Hibernate配置文件
  • 通过Hibernate API编写访问数据库的代码
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐