IDEA+Maven创建Spring项目的实现步骤

  1. 创建Maven项目

使用IDEA创建Maven项目,步骤如下:

  • 点击IDEA的File菜单,选择New,然后选择Project;
  • 在弹出的New Project窗口中,选择Maven;
  • 在下一步中,我们需要输入项目的信息,包括 GroupId、ArtifactId、Version、Project name,这些信息都可以任意填写;
  • 最后,点击Finish按钮即可。

  • 导入Spring相关依赖

在pom.xml文件中,添加Spring相关依赖:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>5.0.5.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>5.0.5.RELEASE</version>
</dependency>

这里我们添加了Spring的基础依赖以及WebMVC模块。

  1. 创建Spring配置文件

在resources目录下,创建一个新的Spring配置文件,命名为applicationContext.xml,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
 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">
    <bean id="helloWorld" class="com.example.HelloWorld">
        <property name="message" value="Hello WORLD!" />
    </bean>
</beans>

这里我们仅创建了一个名为helloWorld的bean,其类为com.example.HelloWorld,并设置了一个名为message的属性。

  1. 创建Controller

在src/main/java目录下,创建一个新的类HelloController,内容如下:

package com.example;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class HelloController {

    @RequestMapping("/hello")
    public ModelAndView helloWorld() {
        String message = "Hello World, Spring 5.0!";
        return new ModelAndView("hello", "message", message);
    }
}

这里我们使用了Spring的注解@Controller和@RequestMapping来定义Controller类和请求的URL,返回的视图模板为hello,同时将数据模型中名为message的属性设置为"Hello World, Spring 5.0!"。

  1. 创建视图模板

在src/main/resources/templates目录下,创建一个名为hello.html的文件,内容如下:

<!DOCTYPE html>
<html>
    <head>
        <title>Hello World Example</title>
    </head>
    <body>
        <h1>${message}</h1>
    </body>
</html>

这里我们使用了Thymeleaf模板引擎来呈现数据模型中的message属性。

  1. 运行项目

在IDEA中,右键点击HelloController类,选择Run即可运行项目。在浏览器中访问http://localhost:8080/hello,即可看到页面上显示的"Hello World, Spring 5.0!"。

示例1:初始项目配置

假设我们现在需要创建一个新的Maven项目,其基本信息如下:

  • GroupId: com.example
  • ArtifactId: demo
  • Version: 1.0-SNAPSHOT
  • Project name: SpringDemo

我们可以按照上文中的步骤来创建该项目,然后添加Spring相关依赖,创建配置文件、Controller和视图模板,最后运行项目即可。

示例2:添加MyBatis支持

假设我们现在需要将上文的示例项目添加MyBatis支持,其步骤如下:

  1. 添加MyBatis依赖

在pom.xml文件中,添加MyBatis相关依赖:

<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.5.5</version>
</dependency>
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-spring</artifactId>
    <version>2.0.5</version>
</dependency>

这里我们添加了MyBatis和MyBatis-Spring的依赖。

  1. 创建MyBatis配置文件

在resources目录下,创建一个名为mybatis-config.xml的文件,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
 PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <settings>
        <setting name="cacheEnabled" value="true"/>
    </settings>
    <typeAliases>
        <typeAlias type="com.example.User" alias="User"/>
    </typeAliases>
    <mappers>
        <mapper resource="mapper/UserMapper.xml"/>
    </mappers>
</configuration>

这里我们定义了一些MyBatis的配置信息,包括开启缓存、定义一个别名User、加载一个名为UserMapper.xml的映射文件。

  1. 创建Mapper接口和映射文件

在src/main/java目录下,创建一个名为UserMapper.java的接口,内容如下:

package com.example.mapper;

import com.example.User;

import java.util.List;

public interface UserMapper {
    User getUserById(Long id);

    List<User> getUsers();

    void insert(User user);

    void update(User user);

    void delete(Long id);
}

这里我们定义了一些操作数据库的方法,比如根据ID获取用户、获取所有用户、插入用户、更新用户、删除用户等。

在resources目录下,创建一个名为UserMapper.xml的映射文件,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.mapper.UserMapper">
    <resultMap id="userMap" type="User">
        <id column="id" property="id"/>
        <result column="name" property="name"/>
        <result column="age" property="age"/>
    </resultMap>

    <select id="getUserById" resultMap="userMap">
        select * from user where id = #{id}
    </select>

    <select id="getUsers" resultMap="userMap">
        select * from user
    </select>

    <insert id="insert" parameterType="User">
        insert into user(name, age) values (#{name}, #{age})
    </insert>

    <update id="update" parameterType="User">
        update user set name=#{name}, age=#{age} where id=#{id}
    </update>

    <delete id="delete" parameterType="Long">
        delete from user where id=#{id}
    </delete>
</mapper>

这里我们定义了与UserMapper接口对应的SQL语句,例如根据ID获取用户、获取所有用户、插入用户、更新用户、删除用户等。

  1. 修改Spring配置文件

在applicationContext.xml文件中,添加以下内容:

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    <property name="driverClassName" value="com.mysql.jdbc.Driver" />
    <property name="url" value="jdbc:mysql://localhost:3306/mydatabase" />
    <property name="username" value="root" />
    <property name="password" value="mysql" />
</bean>

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="configLocation" value="classpath:mybatis-config.xml" />
</bean>

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="basePackage" value="com.example.mapper"/>
</bean>

这里我们使用了Apache Commons DBCP连接池来管理数据库连接,配置了dataSource bean,并创建了sqlSessionFactory和MapperScannerConfigurer两个bean,用于初始化MyBatis和Mapper接口。

  1. 修改Controller类

在HelloController.java文件中,添加以下代码:

@Autowired
private UserMapper userMapper;

@RequestMapping("/getUser/{id}")
public ModelAndView getUserById(@PathVariable Long id) {
    User user = userMapper.getUserById(id);
    return new ModelAndView("hello", "message", user.getName() + ", " + user.getAge());
}

@RequestMapping("/getUsers")
public ModelAndView getUsers() {
    List<User> users = userMapper.getUsers();
    StringBuilder stringBuilder = new StringBuilder();
    for (User user : users) {
        stringBuilder.append(user.getName()).append(", ").append(user.getAge()).append("<br>");
    }
    return new ModelAndView("hello", "message", stringBuilder.toString());
}

这里我们将UserController中的helloWorld方法改成了getUserById和getUsers方法,分别是根据ID获取用户和获取所有用户信息。

  1. 运行项目

在IDEA中,右键点击HelloController类,选择Run即可运行项目。在浏览器中访问http://localhost:8080/getUser/1 或 http://localhost:8080/getUsers,即可看到页面上显示的用户信息。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:IDEA+Maven创建Spring项目的实现步骤 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • GSON实现Java对象与JSON格式对象相互转换的完全教程

    GSON实现Java对象与JSON格式对象相互转换的完全教程 什么是GSON GSON是Google提供的用来在Java对象和JSON数据之间进行序列化和反序列化的Java库。GSON可以将Java对象转化为JSON字符串,也可以将JSON字符串转化为相应的Java对象。 准备工作 在使用GSON之前,您需要做以下准备工作: 下载GSON库 可以通过Mave…

    Java 2023年5月26日
    00
  • SpringBoot SSO轻松实现(附demo)

    下面我将为你详细介绍“SpringBoot SSO轻松实现(附demo)”的完整攻略。 一、什么是SSO SSO全称Single Sign On,即单点登录,是一种允许用户使用单个用户名和密码登录多个应用程序的身份认证机制。SSO可以节省用户的时间和精力,减少各个应用程序之间的管理负担,提高用户体验。 二、SSO实现方式 常用的SSO实现方式有以下两种: 1…

    Java 2023年5月19日
    00
  • 各类常见语言清除网页缓存方法汇总

    各类常见语言清除网页缓存方法汇总 在开发Web应用时,经常会涉及到网页缓存的问题。为了尽可能的保证用户体验,我们需要清除掉网页缓存,使得每次用户访问页面时都能获取最新的数据。本篇文章将针对以下常见语言,为大家汇总清除网页缓存的方法。 HTML 用户访问网站时,浏览器会自动缓存显示的网页,以便下次快速加载。清除浏览器的缓存可以通过以下方法: <meta …

    Java 2023年6月15日
    00
  • JavaPoet的使用指南小结

    让我来详细讲解“JavaPoet的使用指南小结”的完整攻略。 什么是JavaPoet JavaPoet是一个Java代码生成器,它可以帮助开发者在运行时生成Java源代码,从而避免手写冗长的模板代码。 如何添加JavaPoet依赖 如果项目使用Gradle进行构建,可以通过以下方式添加JavaPoet库依赖: dependencies { implement…

    Java 2023年5月26日
    00
  • Java interrupt()方法使用注意_动力节点Java学院整理

    Java中的interrupt()方法用于中断线程的执行。但是,在使用interrupt()方法时需要注意一些问题。下面是使用Java interrupt()方法的注意事项: 1. 如何中断线程? 使用interrupt()方法中断线程,有以下几个步骤: 在线程中使用isInterrupted()或Thread.interrupted()等方法获取中断状态。…

    Java 2023年5月27日
    00
  • 详解如何在spring boot中使用spring security防止CSRF攻击

    当开发一个基于web的应用程序时,防止CSRF攻击是非常重要的步骤。Spring Security提供了很多的功能和配置选项,旨在帮助我们保护Web应用程序。以下是在Spring Boot中使用Spring Security防止CSRF攻击的完整攻略。 1.添加Spring Security依赖 我们需要在项目的pom.xml文件中添加spring-boot…

    Java 2023年5月20日
    00
  • Java基本类型与byte数组之间相互转换方法

    请看下面的讲解。 Java基本类型与byte数组之间相互转换方法 在Java中,有时候我们需要将基本类型(如int、float等)转换成byte数组,或者将byte数组转换成基本类型。本文将提供两种方法来实现这种相互转换。 1. 使用Java的ByteBuffer类 Java的ByteBuffer类可以很方便地完成基本类型与byte数组的转换。 将基本类型转…

    Java 2023年5月26日
    00
  • Java多线程之锁的强化学习

    Java多线程之锁的强化学习 在多线程编程中,锁是一种常用的同步机制。通过锁,我们可以保证多个线程互斥地访问共享资源,从而避免数据不一致或者并发竞争导致的错误。 本文将介绍Java中锁的使用方法及优化技巧,帮助读者快速掌握多线程编程中应用锁的技能。 概述 Java中提供了多种锁的实现方式,包括synchronized关键字、ReentrantLock类、Re…

    Java 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部