不使用Spring框架的Java项目方案

在Java开发中,Spring框架因其强大的依赖注入和模块化特性而广受欢迎。然而,有时候我们可能需要或希望不使用Spring框架来构建Java应用程序。本文将提供一个不使用Spring框架的Java项目方案,包括项目结构、代码示例和旅行图。

项目结构

在不使用Spring的情况下,我们可以采用以下项目结构:

  1. src/main/java - 存放Java源代码
  2. src/main/resources - 存放配置文件和资源文件
  3. src/test/java - 存放测试代码
  4. src/test/resources - 存放测试资源文件

核心组件

  1. 依赖管理 - 使用Maven或Gradle进行依赖管理。
  2. 日志记录 - 使用SLF4J与Logback进行日志记录。
  3. 数据库连接 - 使用JDBC进行数据库连接和操作。
  4. Web服务 - 使用Servlet API实现Web服务。

代码示例

以下是一个简单的Java Web应用程序示例,不使用Spring框架。

Maven依赖

pom.xml文件中添加以下依赖:

<dependencies>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>4.0.1</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.2.3</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.30</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.23</version>
    </dependency>
</dependencies>

日志配置

src/main/resources目录下创建logback.xml文件:

<configuration>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>
    <root level="debug">
        <appender-ref ref="STDOUT" />
    </root>
</configuration>

数据库连接

创建一个数据库连接工具类DatabaseUtil.java

import java.sql.Connection;
import java.sql.DriverManager;

public class DatabaseUtil {
    private static final String URL = "jdbc:mysql://localhost:3306/mydb";
    private static final String USER = "root";
    private static final String PASSWORD = "password";

    public static Connection getConnection() throws Exception {
        return DriverManager.getConnection(URL, USER, PASSWORD);
    }
}

Servlet示例

创建一个简单的Servlet类HelloServlet.java

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setContentType("text/plain");
        resp.setCharacterEncoding("UTF-8");
        resp.getWriter().write("Hello, World!");
    }
}

旅行图

以下是用户访问Web服务的旅行图:

journey
    title 用户访问Web服务
    section 用户发送请求
        Web浏览器: 用户输入URL并访问
    section 服务器处理请求
        Tomcat: 接收请求并调用Servlet
        HelloServlet: 处理请求并返回响应
    section 用户接收响应
        Web浏览器: 显示响应内容

结论

通过上述方案,我们展示了如何在不使用Spring框架的情况下构建一个简单的Java Web应用程序。虽然不使用Spring可能会增加一些配置和依赖管理的复杂性,但它也为我们提供了更多的灵活性和控制权。在某些特定场景下,不使用Spring框架可能是一个合适的选择。