前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java进阶-主流框架总结与详解(上)

Java进阶-主流框架总结与详解(上)

原创
作者头像
Damon小智
发布2024-03-18 04:15:59
5640
发布2024-03-18 04:15:59
举报
文章被收录于专栏:Java全栈文档库

一、Java框架概述

Java开发领域涵盖了众多框架,这些框架提供了丰富的功能和工具,帮助开发人员更高效地构建应用程序。其中,Spring框架是最为广泛应用的之一,它提供了全方位的解决方案,包括依赖注入、面向切面编程等,大大简化了企业级应用的开发。另外,Hibernate框架则为数据持久化提供了便捷的解决方案,将对象与数据库表映射起来,使得开发者可以使用面向对象的思维来处理数据库操作。而Spring Boot框架则是在Spring基础之上构建的,通过自动化配置和快速启动,使得开发者能够更快速地搭建和部署应用程序。除此之外,还有Struts、MyBatis等框架在不同场景下发挥着重要作用。本文将对这些框架进行深入分析,并探讨它们在实际开发中的应用与优缺点。


二、Spring框架

Spring框架是Java平台上的一个轻量级的应用开发框架,它提供了广泛的功能,包括依赖注入、面向切面编程、控制反转等。Spring框架的核心是IoC(控制反转)容器,它简化了应用程序的配置和开发过程。

1、Spring核心模块

  • Spring IoC容器: 负责管理应用程序中的对象,通过依赖注入将对象组装起来。
  • Spring AOP模块: 提供面向切面编程的支持,可以在程序运行期间动态地将代码切入到方法执行前后。
  • Spring JDBC模块: 提供了对JDBC的封装,简化了数据库操作。
  • Spring事务管理: 支持声明式事务管理和编程式事务管理。

2、Spring Boot

Spring Boot是Spring框架的扩展,它简化了Spring应用程序的配置和部署过程。通过自动配置和约定优于配置的原则,Spring Boot可以快速搭建起一个生产级别的Spring应用程序。

Spring Boot目录结构示例:

代码语言:xml
复制
spring-boot-project/
├── src/
│   ├── main/
│   │   ├── java/
│   │   │   ├── com/
│   │   │   │   └── example/
│   │   │   │       ├── controller/             # 控制器层
│   │   │   │       │   └── ExampleController.java
│   │   │   │       ├── model/                  # 实体类
│   │   │   │       │   └── ExampleEntity.java
│   │   │   │       ├── dao/                    # DAO层
│   │   │   │       │   └── ExampleDao.java
│   │   │   │       ├── service/                # 服务类
│   │   │   │       │   ├── ExampleService.java
│   │   │   │       │   └── impl/               # 服务类实现
│   │   │   │       │       └── ExampleServiceImpl.java
│   │   │   ├── resources/
│   │   │   │   ├── application.properties      # Spring Boot配置文件
│   │   │   │   ├── static/                     # 静态文件目录
│   │   │   │   │   └── css/
│   │   │   │   │       └── index.css
│   │   │   │   │   └── js/
│   │   │   │   │       └── index.js
│   │   │   │   └── templates/                  # 模板文件目录
│   │   │   │       └── index.html
│   │   │   └── xml/                            # XML配置文件目录
│   │   │       └── applicationContext.xml
│   └── test/
│       └── java/
│           └── com/
│               └── example/
│                   └── ApplicationTests.java
└── pom.xml

在上述示例中:

  • controller/ 存放控制器层的Java类文件,用于处理请求和响应。
  • model/ 存放实体类的Java类文件,用于定义数据模型。
  • dao/ 存放DAO(数据访问对象)层的Java类文件,用于数据库的访问操作。
  • service/ 存放服务类的Java类文件,用于业务逻辑的处理。
  • impl/ 存放服务类的实现文件。
  • static/ 存放静态文件的目录,如CSS、JavaScript等。
  • templates/ 存放模板文件的目录,如HTML页面。
  • xml/ 存放XML配置文件的目录,如Spring配置文件等。

因为是非常主流的框架,内容不过多叙述,我之前写过很多关于SpringBoot的文章,可以前去详细学习。


3、Spring MVC

Spring MVC基于Spring框架的Web框架,简化了Web应用程序的开发过程。Spring MVC采用MVC(Model-View-Controller)架构模式,将应用程序分为模型(Model)、视图(View)和控制器(Controller)三层。它提供了丰富的注解支持、数据绑定、表单处理等功能,使得开发者可以更轻松地构建灵活可扩展的Web应用程序。

目录结构示例:

代码语言:xml
复制
spring-mvc-project/
├── src/
│   ├── main/
│   │   ├── java/
│   │   │   └── com/
│   │   │       └── example/
│   │   │           ├── controller/
│   │   │           │   └── HomeController.java
│   │   │           └── Application.java
│   │   ├── resources/
│   │   │   ├── static/
│   │   │   │   └── css/
│   │   │   │       └── style.css
│   │   │   ├── templates/
│   │   │   │   └── home.jsp
│   │   │   ├── application.properties
│   │   │   └── dispatcher-servlet.xml
│   └── test/
│       └── java/
│           └── com/
│               └── example/
│                   └── controller/
│                       └── HomeControllerTest.java
├── webapp/
│   ├── WEB-INF/
│   │   ├── views/
│   │   │   └── home.jsp
│   │   └── web.xml
└── pom.xml
  • src/main/resources/dispatcher-servlet.xml:Spring MVC配置文件,配置了控制器扫描、视图解析器等信息。
  • webapp/WEB-INF/views/home.jsp:视图页面,展示来自控制器的数据。
  • webapp/WEB-INF/web.xml:Servlet配置文件,配置了DispatcherServlet,Spring MVC的核心控制器。

简单代码示例:

HomeController.java: 控制器类,处理来自前端的请求。

代码语言:java
复制
package com.example.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class HomeController {

    @GetMapping("/")
    public String home(Model model) {
        model.addAttribute("message", "Welcome to Spring MVC!");
        return "home";
    }
}

home.jsp: 视图页面,展示来自控制器的数据。

代码语言:html
复制
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Spring MVC Example</title>
</head>
<body>
    <h1>${message}</h1>
</body>
</html>

web.xml: Servlet配置文件,配置了DispatcherServlet,Spring MVC的核心控制器。

代码语言:xml
复制
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                             http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">

    <display-name>Spring MVC Example</display-name>

    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/dispatcher-servlet.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

</web-app>

dispatcher-servlet.xml: Spring MVC配置文件,配置了控制器扫描、视图解析器等信息。

代码语言:xml
复制
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
                           http://www.springframework.org/schema/beans/spring-beans.xsd
                           http://www.springframework.org/schema/mvc
                           http://www.springframework.org/schema/mvc/spring-mvc.xsd">

    <mvc:annotation-driven/>
    <context:component-scan base-package="com.example"/>

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/views/"/>
        <property name="suffix" value=".jsp"/>
    </bean>

</beans>

这个示例展示了一个简单的Spring MVC应用程序,包括了一个控制器类、一个JSP视图页面以及相关的Servlet和Spring MVC配置文件。


三、Hibernate框架

Hibernate是一个优秀的对象关系映射(ORM)框架,它将Java对象映射到数据库表,使得开发人员可以通过面向对象的方式来操作数据库。Hibernate框架简化了数据库操作,提高了开发效率。

1、Hibernate核心特性

  • 对象关系映射: 将Java对象映射到数据库表。
  • Hibernate查询语言(HQL): 类似于SQL,但是使用面向对象的方式来查询数据。
  • Hibernate缓存: 提供了一级缓存和二级缓存,提高了数据访问的性能。
  • Hibernate事务管理: 支持声明式事务管理和编程式事务管理。

2、Hibernate的目录结构

很老的一款框架,有年代感了。

代码语言:xml
复制
hibernate-project/
├── src/
│   ├── main/
│   │   ├── java/
│   │   │   └── com/
│   │   │       └── example/
│   │   │           ├── model/
│   │   │           │   └── Entity.java
│   │   │           ├── dao/
│   │   │           │   └── EntityDao.java
│   │   │           └── service/
│   │   │               └── EntityService.java
│   │   ├── resources/
│   │   │   ├── hibernate.cfg.xml
│   │   │   └── mappings/
│   │   └── webapp/
│   │       ├── WEB-INF/
│   │       │   └── views/
│   │       │       └── entity-view.jsp
│   │       ├── static/
│   │       │   ├── js/
│   │       │   │   └── script.js
│   │       │   ├── css/
│   │       │   │   └── style.css
│   │       │   └── images/
│   └── test/
│       └── java/
│           └── com/
│               └── example/
│                   └── EntityDaoTest.java
└── pom.xml

在上述示例中:

  • com/example/model/目录存放实体类Entity.java
  • com/example/dao/目录存放数据访问对象(DAO)类EntityDao.java
  • com/example/service/目录存放服务类EntityService.java
  • resources/目录存放Hibernate配置文件hibernate.cfg.xml和映射文件夹mappings/
  • webapp/WEB-INF/views/目录存放JSP视图文件entity-view.jsp
  • webapp/static/js/目录存放JavaScript文件script.js
  • webapp/static/css/目录存放CSS样式文件style.css

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、Java框架概述
  • 二、Spring框架
    • 1、Spring核心模块
      • 2、Spring Boot
        • 3、Spring MVC
        • 三、Hibernate框架
          • 1、Hibernate核心特性
            • 2、Hibernate的目录结构
            相关产品与服务
            容器服务
            腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档