ssm框架原理及流程是什么
ssm框架原理是:将Spring、SpringMVC、MyBatis整合在一起,作为数据源较简单的web项目的框架。流程是:Handler Mapping根据请求找到相应的Handler,调用业务逻辑进行处理,然后进行视图解析即可。
SSM框架简介
SSM(Spring+SpringMVC+MyBatis)框架集由Spring、MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容)。SSM常作为数据源较简单的web项目的框架。
SpringMVC
SpringMVC在项目中拦截用户请求,它的核心Servlet即DispatcherServlet承担中介的职责,将用户请求通过HandlerMapping去匹配Controller,Controller就是具体对应请求所执行的操作。
SpringMVC框架运行流程
用户将请求发送至DispatcherServlet;
DispatcherServlet收到请求查询一个或多个HandlerMapping,找到处理该请求的Handler;
HandlerMapping根据请求找到相应的Handler,生成Handler对象返回给DispatcherServlet;
DispatcherServlet通过HandlerAdapter调用Handler;
Handler(Controller)调用业务逻辑(service)进行处理,处理完成返回ModelAndView;
HandlerAdapter将Handler处理结果ModelAndView返回给DispatcherServlet;
DispatcherServlet查询一个或多个ViewReslover(视图解析器),将ModelAndView传给指定的ViewReslover;
ViewReslover解析后返回具体View给DispatcherServlet;
DispatcherServlet对View进行渲染(将模型数据填充至视图中);
DispatcherServlet响应用户,View将结果显示在客户端。
流程大致如下图:
DispatcherServlet是整个Spring MVC的核心,它负责接收HTTP请求,组织协调Spring MVC的各个组成部分,其主要的工作有以下3项:
a. 截获符合特定格式的URL请求;
b. 初始化DispatcherServlet上下文对应的WebApplicationContext,并将其与业务层、持久层的WebApplicationContext建立关联;
c. 初始化Spring MVC的各个组件,并配装到DispatcherServlet中。
Spring
Spring就像是整个项目中装配bean的大工厂,在配置文件中可以指定使用特定的参数去调用实体类的构造方法来实例化对象。也可以称之为项目中的粘合剂。
Spring的核心思想是IOC(控制反转),即不再需要程序员去显式地new一个对象,而是让Spring框架帮你来完成这一切。IOC容器负责实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。Spring的目的就是让对象与对象(模块与模块)之间的关系没有通过代码来关联,都是通过配置类说明管理的(Spring根据这些配置,内部通过反射去动态的组装对象)。
IOC容器代表的就是org.springframework.beans包中的BeanFactory接口,其提供了IOC容器的基本功能;而org.springframework.context包下的ApplicationContext接口扩展了BeanFactory,还提供了与Spring AOP集成、国际化处理、事件传播及提供不同层次的context实现。
简单说,BeanFactory提供了IOC容器最基本功能,而ApplicationContext则增加了更多支持企业级功能支持。ApplicationContext完全继承BeanFactory,因而BeanFactory所具有的语义也适用于ApplicationContext。
Spring运行流程
加载配置文件,ApplicationContext接口。配置文件中的bean的信息被加载在HashMap中,一个bean通常包括,id,class,property等,bean的id对应HashMap中的key,HashMap中的value就是bean。
调用getBean方法,getBean是用来获取applicationContext.xml文件里bean的,参数是bean的id。一般情况都会强制转换成对应的业务层(接口)。
调用业务层(接口实现)的方法。
bean中的内容是怎么注入进去的?简单来讲,就是在实例化一个bean时,实际上就实例化了类,它通过反射调用类中set方法将事先保存在HashMap中的类属性注入到类中。这样就回到了我们Java最原始的地方,对象.属性,对象.方法。
Mybatis
Mybatis是对jdbc的封装,它让数据库底层操作变的透明。Mybatis的操作都是围绕一个sqlSessionFactory实例展开的。mybatis通过配置文件关联到各实体类的Mapper文件,Mapper文件中配置了每个类对数据库所需进行的sql语句映射。在每次与数据库交互时,通过sqlSessionFactory拿到一个sqlSession,再执行sql命令。
Mybatis通过MapperProxy动态代理dao,也就是说,当执行自己写的dao里面的方法的时候,其实是对应的MapperProxy在代理。
Mybatis运行原理
加载配置文件
将SQL的配置信息加载成为一个个MappedStatement对象,包括了参数映射配置,执行的SQL语句,结果映射配置,存储在内存中。
SQL解析
当API接口层接收到调用请求时,会接收到传入SQL的ID和传入对象(可以是Map/JavaBean或者基本数据类型),Mybatis会根据SQL的ID找到对应的MappedStatement,然后根据传入的参数对象MappedStatement进行解析,解析后可以得到最终要执行的SQL语句和参数。
SQL执行
将最终得到的SQL和参数拿到数据库执行,得到操作数据库的结果。
结果映射
将操作数据库的结果按照映射的配置进行转换,可以转换成HashMap/JavaBean或者基本数据类型,并将最终的结果返回。
Atas ialah kandungan terperinci ssm框架原理及流程是什么. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Dengan populariti Internet mudah alih, Toutiao telah menjadi salah satu platform maklumat berita paling popular di negara saya. Ramai pengguna berharap untuk mempunyai berbilang akaun pada platform Toutiao untuk memenuhi keperluan yang berbeza. Jadi, bagaimana untuk membuka berbilang akaun Toutiao? Artikel ini akan memperkenalkan secara terperinci kaedah dan proses permohonan membuka berbilang akaun Toutiao. 1. Bagaimana untuk membuka berbilang akaun Toutiao? Kaedah membuka berbilang akaun Toutiao adalah seperti berikut: Pada platform Toutiao, pengguna boleh mendaftar akaun melalui nombor telefon mudah alih yang berbeza. Setiap nombor telefon mudah alih hanya boleh mendaftar satu akaun Toutiao, yang bermaksud pengguna boleh menggunakan berbilang nombor telefon mudah alih untuk mendaftar berbilang akaun. 2. Pendaftaran e-mel: Gunakan alamat e-mel yang berbeza untuk mendaftar akaun Toutiao. Sama seperti pendaftaran nombor telefon mudah alih, setiap alamat e-mel juga boleh mendaftar akaun Toutiao. 3. Log masuk dengan akaun pihak ketiga

Dalam masyarakat yang serba pantas hari ini, masalah kualiti tidur melanda semakin ramai orang. Untuk meningkatkan kualiti tidur pengguna, sekumpulan sauh tidur khas telah muncul di platform Douyin. Mereka berinteraksi dengan pengguna melalui siaran langsung, berkongsi petua tidur dan menyediakan muzik dan bunyi yang menenangkan untuk membantu penonton tidur dengan tenang. Jadi, adakah sauh tidur ini menguntungkan? Artikel ini akan memberi tumpuan kepada isu ini. 1. Adakah sauh tidur Douyin menguntungkan? Douyin sleep anchor memang boleh mendapat keuntungan tertentu. Pertama, mereka boleh menerima hadiah dan pemindahan melalui fungsi pemberian tip dalam bilik siaran langsung, dan faedah ini bergantung pada bilangan peminat dan kepuasan penonton mereka. Kedua, platform Douyin akan memberikan sauh bahagian tertentu berdasarkan bilangan tontonan, suka, perkongsian dan data lain siaran langsung. Beberapa sauh tidur juga akan

Apa yang perlu dilakukan apabila melalui Bayangan Kematian di Kereta Api Kubah Bintang Runtuh? Walking through the Shadow of Death ialah salah satu pencarian utama [Cat among Doves], dan ia juga merupakan peringkat akhir pencarian utama Di bawah, editor akan memberikan penjelasan terperinci tentang misi Walking through the Shadow of Death Kereta Api Kubah Bintang Runtuh, bagi mereka yang berminat Mari lihat. 1. Selepas menyelesaikan plot sebelumnya, anda akan dipindahkan secara automatik ke lokasi dalam gambar di bawah. Selepas bercakap dengan 7 Mac, anda akan masuk ke dalam penjara [Stone Heart Ten] Weird Placer Gold, dengan empat pasukan dadu, jika mata anda lebih besar daripada emas pasir, anda tidak akan dipukul dan selepas tamat, jumlah kemahiran penamat akan dipulihkan sepenuhnya. Jika kurang daripada itu, anda akan dipukul watak serangan kumpulan untuk mendapatkan mata. dalam bos

Penjelasan terperinci dan strategi pengoptimuman proses pemprosesan permintaan php-fpm 1. Pengenalan Dalam pembangunan aplikasi web, PHP ialah bahasa skrip sebelah pelayan yang sangat popular. Dan php-fpm (FastCGIProcessManager) ialah pengurus PHP, digunakan untuk memproses permintaan PHP. Artikel ini akan memperkenalkan proses pemprosesan permintaan php-fpm secara terperinci, dan membincangkan cara mengoptimumkan php-fpm dan meningkatkan prestasi aplikasi web. 2. proses pemprosesan permintaan php-fpm Apabila pelanggan memulakan permintaan

Apa yang perlu dilakukan dengan semua kisah sedih Kereta Api Kubah Bintang Runtuh? Semua Kisah Sedih adalah sebahagian daripada pencarian utama [Kucing di antara Burung Merpati]. pandangan. 1. Selepas melengkapkan peringkat sebelumnya, anda akan secara automatik dipindahkan ke peta baharu kedua [Taman Filem dan Televisyen Jubah]. plot, pergi ke Bercakap dengan kanak-kanak di kedudukan ke-4 dan selesaikan permainan mini [Speed and Nuts]. 3. Kemudian tugas menjejak adalah untuk terbang dari kedudukan 1 [mesin pinball] dalam gambar di bawah ke kedudukan 2 4. Selepas tiba di kedudukan dalam gambar di bawah, anda perlu berjalan melalui maze Selepas masuk dari kiri, teruskan berjalan ke kanan untuk mencapai titik tugas 15.

Vue.js ialah rangka kerja JavaScript yang popular untuk membina antara muka pengguna dan aplikasi satu halaman. Sintaksnya yang ringkas, fleksibiliti dan fungsi yang berkuasa menjadikannya pilihan pertama bagi banyak pembangun. Dalam pembangunan projek baru-baru ini, saya dan pasukan saya telah mengumpul beberapa pengalaman dalam mengoptimumkan proses pembangunan dan kecekapan kerja, yang kami ingin kongsikan dengan anda. Pertama sekali, sebagai asas untuk pembangunan Vue.js, kita mesti memahami sepenuhnya ekosistem dan konsep teras Vue.js. Konsep teras Vue.js termasuk sistem dipacu data dan komponen

Bahasa Java ialah bahasa pengaturcaraan berorientasikan objek yang digunakan secara meluas dan digunakan secara meluas dalam pembangunan perisian peringkat perusahaan. Dalam bahasa Java, proses pembangunan perisian adalah bahagian yang sangat penting, yang boleh membantu pasukan pembangunan menyelesaikan tugas pembangunan perisian dengan lebih cekap. Artikel ini akan memperkenalkan proses pembangunan perisian dalam bahasa Java dan membincangkan tugasan yang perlu diselesaikan pada setiap peringkat. Fasa Analisis Keperluan Langkah pertama dalam pembangunan perisian ialah menjalankan analisis keperluan, yang bertujuan untuk menentukan keperluan perisian. Semasa fasa analisis keperluan dalam bahasa Java, pasukan pembangunan memerlukan

Dalam beberapa tahun kebelakangan ini, dengan pertumbuhan letupan volum data, permintaan untuk aplikasi data besar semakin meningkat. Sebagai bahasa pengaturcaraan yang popular, PHP digunakan secara meluas dalam pembangunan web dan juga boleh digunakan untuk membina aplikasi data besar. Artikel ini akan memperkenalkan proses asas membina aplikasi data besar menggunakan PHP, termasuk pemprosesan data, penyimpanan dan analisis. 1. Pemprosesan data Pemprosesan data ialah langkah pertama dalam aplikasi data besar Tujuannya adalah untuk mengumpul data daripada pelbagai sumber dan melakukan pemprosesan dan pembersihan awal untuk penyimpanan, analisis dan penggunaan. PHP boleh digunakan