🌟Springboot项目基础配置:小白也能快速上手!

简介: 零基础也能玩转Springboot项目基础配置!

创建项目

打开idea,新建一个项目。

选择springboot进行初始化。

勾选需要添加的依赖(也可后续在pom文件中进行添加也可)

点击完成,即可生成对应的项目。

导入依赖

打开pom.xml文件,可以看到目前项目的依赖配置

配置Application

将application文件更改为.yml格式(不改使用.properties格式也是可以的,看个人习惯)

server:
  port: 8080
spring:
  #解决SpringBoot2.6.0与swagger冲突问题【原因是在springboot2.6.0中将SpringMVC 默认路径匹配策略从AntPathMatcher 更改为PathPatternParser,导致出错,解决办法是切换回原先的AntPathMatcher】
  mvc:
    pathmatch:
      matching-strategy: ant_path_matcher
  #配置数据源
  datasource:
    #配置数据源类型
    type: com.zaxxer.hikari.HikariDataSource
    #配置数据库连接属性
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/test
    username: root
    password: xxxxxx
    hikari:
      connection-test-query: SELECT 1
      connection-timeout: 60000
      idle-timeout: 500000
      max-lifetime: 540000
      maximum-pool-size: 12
      minimum-idle: 10
      pool-name: GuliHikariPool
  thymeleaf:
    #模板的模式,支持 HTML, XML TEXT JAVASCRIPT
    mode: HTML5
    #编码 可不用配置
    encoding: UTF-8
    #开发配置为false,避免修改模板还要重启服务器
    cache: false
    #配置模板路径,默认是templates,可以不用配置
    prefix: classpath:/static/
  jackson:
    date-format: yyyy-MM-dd HH:mm:ss
    time-zone: GMT+8
  servlet:
    #设置文件上传上限
    multipart:
      max-file-size: 10MB
      max-request-size: 100MB
mybatis-plus:
  configuration:
    #添加日志支持
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  mapper-locations: classpath*:/mapper/**/*.xml

连接数据库

连接数据库,填写数据库相应的信息,和application中的datasource数据源数据保持一致。

点击连接,信息无误后即可看到连接成功,数据库也出现在idea侧边栏中。

同时创建后续的测试数据

项目结构初始化

创建需要的mapper、service、cotroller包等

数据层(POJO)

POJO实质上可以理解为简单的实体类,顾名思义POJO类的作用是方便程序员使用数据库中的数据表,对于广大的程序员,可以很方便的将POJO类当做对象来进行使用,当然也是可以方便的调用其get,set方法。

创建entity包

public class test {
    private Integer id;
    private String user;
    private String password;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getUser() {
        return user;
    }
    public void setUser(String user) {
        this.user = user;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
}

数据访问层(Mapper)

Mapper模式通常是指对象-关系映射(ORM)中的组件。

它负责将领域对象和数据库表之间进行映射,实现数据的读取和写入。Mapper将数据库操作转换为对象操作,屏蔽了底层数据库的细节,使得开发人员可以使用面向对象的方式操作数据。

它可以处理对象与关系型数据库之间的转换,包括查询、插入、更新和删除等操作。

创建mapper接口

@Repository
@Mapper
public interface TestMapper {
    /**
     * 增加一条数据
     * @param tests 数据
     */
    void add(test tests);
    /**
     * 删除一条数据
     * @param id 被删除数据的id
     */
    void delete(Integer id);
    /**
     * 修改一条数据
     * @param tests 修改的数据
     */
    void update(test tests);
    /**
     * 根据id去查询一条数据
     * @param id 查询的id
     */
    test queryById(Integer id);
    /**
     * 查询全部数据
     * @return
     */
    List<test> queryAll();
}

创建mapper接口对应的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.nolan.malls.mapper.TestMapper">
    <insert id="add" parameterType="com.nolan.malls.entity.test">
        insert into tb_test (id,user,password) values (#{id},#{user},#{password});
    </insert>
    <update id="update" parameterType="com.nolan.malls.entity.test">
        update tb_test set id=#{id},user=#{user},password=#{password} where id=#{id};
    </update>
    <select id="queryById" parameterType="integer" resultType="com.nolan.malls.entity.test">
        select * from tb_test where id=#{id};
    </select>
    <select id="queryAll" resultType="com.nolan.malls.entity.test">
        select * from tb_test;
    </select>
    <delete id="delete" parameterType="integer">
        delete from tb_test where id=#{id};
    </delete>
</mapper>

业务层(Service)

Service层:服务层

由于Dao里面存放了对表操作的方法,entity类中存放了映射表的POJO类。Service的作用就是将Dao和entity类整合起来,进行再次封装,封装成一个方法,我们调用这个方法,就实现了对某个表的增删改查操作。

Dao的作用是封装对数据库的访问:增删改查,不涉及业务逻辑,只是达到按某个条件获得指定数据的要求;
而Service,则是专注业务逻辑,对于其中需要的数据库操作,都通过Dao去实现。

创建service层

@Service
public class TestServiceImpl implements TestService {
    @Autowired
    private TestMapper testMapper;
    @Override
    public void add(test tests){
        testMapper.add(tests);
    }
    @Override
    public void update(test tests){
        testMapper.update(tests);
    }
    @Override
    public test queryById(Integer id){
        return testMapper.queryById(id);
    }
    @Override
    public List<test> queryAll(){
        return testMapper.queryAll();
    }
    @Override
    public void delete(Integer id){
        testMapper.delete(id);
    }
}

public interface TestService {
    /**
     * 增加一条数据
     * @param tests 数据
     */
    void add(test tests);
    /**
     * 删除一条数据
     * @param id 被删除数据的id
     */
    void delete(Integer id);
    /**
     * 修改一条数据
     * @param tests 修改的数据
     */
    void update(test tests);
    /**
     * 根据id去查询一条数据
     * @param id 查询的id
     */
    test queryById(Integer id);
    /**
     * 查询全部数据
     * @return
     */
    List<test> queryAll();
}

                                                       

控制层(Controller)

Controller

负责请求转发,接受页面传递过来的参数,根据参数的不同,是调用不同的Service层方法进行操作,操作完成后将返回结果传递给页面。

Controller负责具体的业务模块流程的控制;Service层负责业务模块的逻辑应用设计

创建controller层

@Controller
@RequestMapping(value = "/test")
public class TestController {
    @Autowired
    private TestService testService;
    @GetMapping
    @ResponseBody
    public String queryAll(){
        List<test> testList=testService.queryAll();
        return JSON.toJSONString(testList);
    }
    //使用了RestFull风格
    @GetMapping("/{id}")
    @ResponseBody
    public String query(@PathVariable(value = "id")Integer id){
        test tests=testService.queryById(id);
        List<test> testList = new ArrayList<>();
        testList.add(tests);
        return JSON.toJSONString(testList);
    }
    @PostMapping
    @ResponseBody
    public String add(@RequestBody test tests){
        testService.add(tests);
        return "添加成功";
    }
    @DeleteMapping
    @ResponseBody
    public String delete(@PathVariable("id") Integer id){
        testService.delete(id);
        return "删除成功";
    }
    @PutMapping
    @ResponseBody
    public String update(@PathVariable("id")Integer id,
                         @RequestBody test test){
        test.setId(id);
        testService.update(test);
        return "修改完成";
    }
}

测试项目

选择idea中自带的http client工具,进行测试请求。                                                                    

GET http://127.0.0.1:9080/test
Accept: application/json

至此,一个简单的Springboot项目就搭建完成了。

目录
打赏
0
0
0
0
65
分享
相关文章
微服务——SpringBoot使用归纳——Spring Boot开发环境搭建和项目启动
本文介绍了Spring Boot开发环境的搭建和项目启动流程。主要内容包括:jdk的配置(IDEA、STS/eclipse设置方法)、Spring Boot工程的构建方式(IDEA快速构建、官方构建工具start.spring.io使用)、maven配置(本地maven路径与阿里云镜像设置)以及编码配置(IDEA和eclipse中的编码设置)。通过这些步骤,帮助开发者顺利完成Spring Boot项目的初始化和运行准备。
43 0
微服务——SpringBoot使用归纳——Spring Boot开发环境搭建和项目启动
微服务——SpringBoot使用归纳——Spring Boot中的项目属性配置——少量配置信息的情形
本课主要讲解Spring Boot项目中的属性配置方法。在实际开发中,测试与生产环境的配置往往不同,因此不应将配置信息硬编码在代码中,而应使用配置文件管理,如`application.yml`。例如,在微服务架构下,可通过配置文件设置调用其他服务的地址(如订单服务端口8002),并利用`@Value`注解在代码中读取这些配置值。这种方式使项目更灵活,便于后续修改和维护。
16 0
微服务——SpringBoot使用归纳——Spring Boot使用slf4j进行日志记录——使用Logger在项目中打印日志
本文介绍了如何在项目中使用Logger打印日志。通过SLF4J和Logback,可设置不同日志级别(如DEBUG、INFO、WARN、ERROR)并支持占位符输出动态信息。示例代码展示了日志在控制器中的应用,说明了日志配置对问题排查的重要性。附课程源码下载链接供实践参考。
46 0
SpringBoot项目打war包流程
本文介绍了将Spring Boot项目改造为WAR包并部署到外部Tomcat服务器的步骤。主要内容包括:1) 修改pom.xml中的打包方式为WAR;2) 排除Spring Boot内置的Tomcat依赖;3) 添加Servlet API依赖;4) 改造启动类以支持WAR部署;5) 打包和部署。通过这些步骤,可以轻松地将Spring Boot应用转换为适合外部Tomcat服务器的WAR包。
211 64
SpringBoot项目打war包流程
微服务——SpringBoot使用归纳——Spring Boot中的项目属性配置——指定项目配置文件
在实际项目中,开发环境和生产环境的配置往往不同。为简化配置切换,可通过创建 `application-dev.yml` 和 `application-pro.yml` 分别管理开发与生产环境配置,如设置不同端口(8001/8002)。在 `application.yml` 中使用 `spring.profiles.active` 指定加载的配置文件,实现环境快速切换。本节还介绍了通过配置类读取参数的方法,适用于微服务场景,提升代码可维护性。课程源码可从 [Gitee](https://gitee.com/eson15/springboot_study) 下载。
27 0
微服务——SpringBoot使用归纳——Spring Boot中的项目属性配置——少量配置信息的情形
在微服务架构中,随着业务复杂度增加,项目可能需要调用多个微服务。为避免使用`@Value`注解逐一引入配置的繁琐,可通过定义配置类(如`MicroServiceUrl`)并结合`@ConfigurationProperties`注解实现批量管理。此方法需在配置文件中设置微服务地址(如订单、用户、购物车服务),并通过`@Component`将配置类纳入Spring容器。最后,在Controller中通过`@Resource`注入配置类即可便捷使用,提升代码可维护性。
18 0
SpringBoot项目打包成war包
通过上述步骤,我们成功地将一个Spring Boot应用打包成WAR文件,并部署到外部的Tomcat服务器中。这种方式适用于需要与传统Servlet容器集成的场景。
50 8
|
2月前
基于springboot+thymeleaf+Redis仿知乎网站问答项目源码
基于springboot+thymeleaf+Redis仿知乎网站问答项目源码
174 36
SpringBoot start.aliyun.com创建项目,解决properties乱码的问题
通过确保文件和开发环境的编码一致,配置 Maven 编码,设置 Spring Boot 应用和嵌入式服务器的编码,可以有效解决 properties 文件的乱码问题。以上步骤可以帮助开发者确保在 Spring Boot 项目中正确处理和显示多语言字符,避免因编码问题导致的乱码现象。
60 5
SpringBoot获取项目文件的绝对路径和相对路径
SpringBoot获取项目文件的绝对路径和相对路径
225 1
SpringBoot获取项目文件的绝对路径和相对路径

热门文章

最新文章