0


Springboot 整合与文件配置

168c1abc67f4402ebfc99ff077a3e4da.gif

哈喽~大家好,这篇看看Springboot 整合与文件配置。

🥇个人主页:个人主页

🥈 系列专栏:【Java框架】

🥉与这篇相关的文章:
【JAVAEE框架】MyBatis与Spring的整合(上)【JAVAEE框架】MyBatis与Spring的整合(上)_程序猿追的博客-CSDN博客【JAVAEE框架】浅谈 AOP 及代码实现【JAVAEE框架】浅谈 AOP 及代码实现_程序猿追的博客-CSDN博客【JAVAEE框架】浅谈 Spring 框架的两大核心思想 AOP 与 IOP【JAVAEE框架】浅谈 Spring 框架的两大核心思想 AOP 与 IOP_程序猿追的博客-CSDN博客

目录


一、前言

前篇文字大家已经感受了

  1. SpringBoot

起步项目,回过头看看

  1. SpringBoot

主要作用是什么,就是简化

  1. Spring

的搭建过程和开发过程。

原始

  1. Spring

环境搭建和开发存在以下问题

  • 配置繁琐
  • 依赖设置繁琐
  1. SpringBoot

程序优点恰巧就是针对

  1. Spring

的缺点

  • 自动配置。这个是用来解决 Spring 程序配置繁琐的问题
  • 起步依赖。这个是用来解决 Spring 程序依赖设置繁琐的问题
  • 辅助功能(内置服务器,...)。我们在启动 SpringBoot 程序时既没有使用本地的 tomcat 也没有使用 tomcat 插件,而是使用 SpringBoot 内置的服务器。

**接下来我们来说一下

  1. SpringBoot

的起步依赖**

1、先来看看pom文件

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. <modelVersion>4.0.0</modelVersion>
  5. <parent>
  6. <groupId>org.springframework.boot</groupId>
  7. <artifactId>spring-boot-starter-parent</artifactId>
  8. <version>2.7.4</version>
  9. <relativePath/> <!-- lookup parent from repository -->
  10. </parent>
  11. <groupId>com.itxzw</groupId>
  12. <artifactId>day03_SpringBoot01</artifactId>
  13. <version>0.0.1-SNAPSHOT</version>
  14. <name>day03_SpringBoot01</name>
  15. <description>day03_SpringBoot01</description>
  16. <properties>
  17. <java.version>1.8</java.version>
  18. </properties>
  19. <dependencies>
  20. <dependency>
  21. <groupId>org.springframework.boot</groupId>
  22. <artifactId>spring-boot-starter-web</artifactId>
  23. </dependency>
  24. <dependency>
  25. <groupId>mysql</groupId>
  26. <artifactId>mysql-connector-java</artifactId>
  27. <scope>runtime</scope>
  28. </dependency>
  29. <dependency>
  30. <groupId>org.projectlombok</groupId>
  31. <artifactId>lombok</artifactId>
  32. <optional>true</optional>
  33. </dependency>
  34. <dependency>
  35. <groupId>org.springframework.boot</groupId>
  36. <artifactId>spring-boot-starter-test</artifactId>
  37. <scope>test</scope>
  38. </dependency>
  39. <dependency>
  40. <groupId>com.alibaba</groupId>
  41. <artifactId>druid-spring-boot-starter</artifactId>
  42. <version>1.2.11</version>
  43. </dependency>
  44. <dependency>
  45. <groupId>org.mybatis.spring.boot</groupId>
  46. <artifactId>mybatis-spring-boot-starter</artifactId>
  47. <version>2.2.2</version>
  48. </dependency>
  49. <dependency>
  50. <groupId>com.baomidou</groupId>
  51. <artifactId>mybatis-plus-boot-starter</artifactId>
  52. <version>3.5.0</version>
  53. </dependency>
  54. </dependencies>
  55. <build>
  56. <plugins>
  57. <plugin>
  58. <groupId>org.springframework.boot</groupId>
  59. <artifactId>spring-boot-maven-plugin</artifactId>
  60. <configuration>
  61. <excludes>
  62. <exclude>
  63. <groupId>org.projectlombok</groupId>
  64. <artifactId>lombok</artifactId>
  65. </exclude>
  66. </excludes>
  67. </configuration>
  68. </plugin>
  69. </plugins>
  70. </build>
  71. </project>

2、parent

parent 作用 定义了一个父标签spring-boot-dependencies,这个里边定义了依赖的版本,也正是因为继承了这个依赖,所以我们在写依赖时才不需要写版本号 使用默认编码格式为 UTF-8 定义了 Java 编译版本为 1.8 定义了针对 application.properties 和 application.yml 的资源过滤,包括通过 profile 定义的不同环境的配置文件,例如 application-dev.properties 和 application-dev.yml 执行打包操作的配置 自动化的资源过滤 自动化的插件配置

3、spring-boot-starter-web

spring-boot-starter-web是一个依赖库,Spring Boot 是在 Spring 的基础上创建的一个开原框架,它提供了 spring-boot-starter-web (web场景启动器)来为web开发予以支持。spring-boot-starter-web 为什么提供了嵌入的Servlet容器以及SpringMVC提供了大量自动配置,可以适用于大多数web开发场景。

只要我们在Spring Boot 项目中的 pom.xml 中引入了spring-boot-starter-web依赖,即使不进行任何配置,也可以使用Spring MVC 进行 Web 开发。

4、spring-boot-starter-test

支持常规的测试依赖,包括JUnit、Hamcrest、Mockito以及spring-test模块。

更详细的可以看看这位大佬的,[SpringBoot 之Spring Boot Starter依赖包及作用 - 方东信 - 博客园]

在dependencies里面发现了有的依赖有版本号,有些却没有,这是为什么呢?

在 Spring提供的场景启动器是以 spring-boot-starter-** 这样的形式(xx就是要引入的依赖名,不需要版本号(自动装配))

eg:

这个redis的依赖

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-data-redis</artifactId>
  4. </dependency>

按ctrl点击 spring-boot-starter-data-redis 进去,发现里面有<version>2.7.4</version>,真相大白

75362457ba3e42ef85472a11a611ba20.png

而第三方框架场景启动器是以 ****-spring-boot-starter** 这样的形式

eg:

  1. <dependency>
  2. <groupId>com.alibaba</groupId>
  3. <artifactId>druid-spring-boot-starter</artifactId>
  4. <version>1.2.11</version>
  5. </dependency>

二、配置文件格式

1、

  1. application文件配置

我们现在启动服务器默认的端口号是

  1. 8080

,访问路径可以书写为

  1. http://localhost:8080/books/1

在线上环境我们还是希望将端口号改为

  1. 80

,这样在访问的时候就可以不写端口号了,如下

  1. http://localhost/books/1

  1. SpringBoot

程序如何修改呢?

  1. SpringBoot

提供了多种属性配置方式

**

  1. application.properties

**

  1. server.port=80

  1. SpringBoot

程序如何修改呢?

  1. SpringBoot

提供了多种属性配置方式

application.properties

  1. server.port=80

application.yml

  1. server:
  2. port: 81

application.yaml

  1. server:
  2. port: 82

注意:

  1. SpringBoot

程序的配置文件名必须是

  1. application

,只是后缀名不同而已。

2、static目录

static目录 static目录是用来保存静态文件的目录, 比如HTML, JS, CSS, 图片等, 是不需要服务器进行数据绑定的页面. static目录下的文件, SpringBoot帮我们做了静态路径自动解析. 比如: 我写了一个/static/hello.html 在浏览器上访问: localhost/hello.html 即可访问到。

3、template目录

template目录 template目录是用来保存动态模版文件的目录, 比如Freemarker, JSP, Thymeleaf等需要服务器动态渲染数据的文件. 由于页面渲染需要服务器中的数据, 所以该文件必须经过Controller控制器进行Model数据绑定后, 由服务器进行跳转. 所以直接访问是无意义的, 也访问不到.

比如: 我写了一个/templates/hello.ftl 在浏览器上访问: localhost/hello.ftl是访问不到的, 需要访问Controller的路径, 才能访问到页面 (由Controller进行跳转, 也就说明数据已经绑定成功)

三、SpringBoot整合

1、yml 配置

  1. server:
  2. port: 8080
  3. spring:
  4. datasource:
  5. driver-class-name: com.mysql.cj.jdbc.Driver
  6. url: jdbc:mysql://localhost:3306/db1?useUnicode=true&characterEncoding=utf8&useSSL=true&serverTimezone=Asia/Shanghai
  7. username: root
  8. password: 123456
  9. type: com.alibaba.druid.pool.DruidDataSource
  10. mybatis-plus:
  11. configuration:
  12. cache-enabled: true
  13. jdbc-type-for-null: null
  14. auto-mapping-behavior: full
  15. type-aliases-package: com.itxzw.*.model
  16. mapper-locations: classpath:mapper/*.xml

2、实体类

SmbmsUser 与 UserCondition

  1. package com.itxzw.user.model;
  2. import lombok.AllArgsConstructor;
  3. import lombok.Data;
  4. import lombok.NoArgsConstructor;
  5. import lombok.ToString;
  6. import org.springframework.format.annotation.DateTimeFormat;
  7. import java.util.Date;
  8. @Data
  9. @ToString
  10. @AllArgsConstructor
  11. @NoArgsConstructor
  12. // 用户实体类
  13. public class SmbmsUser {
  14. private String id;
  15. private String usercode;
  16. private String username;
  17. private String userpassword;
  18. private long gender;
  19. // @JSONField(format = "yyyy-MM-dd")
  20. // @DateTimeFormat(pattern = "yyyy-MM-dd")
  21. private Date birthday;
  22. private String phone;
  23. private String address;
  24. private String userrole;
  25. private String createdby;
  26. private Date creationdate;
  27. private String modifyby;
  28. private Date modifydate;
  29. }
  1. package com.itxzw.user.model;
  2. import lombok.AllArgsConstructor;
  3. import lombok.Data;
  4. import lombok.NoArgsConstructor;
  5. import lombok.ToString;
  6. @Data
  7. @ToString
  8. @AllArgsConstructor
  9. @NoArgsConstructor
  10. // 对用户操作的实体类
  11. public class UserCondition {
  12. private String id;
  13. private String usercode;
  14. private String username;
  15. private String userpassword;
  16. private String un;
  17. private String gender;
  18. private String userrole;
  19. private String createdby;
  20. }

3、控制层

  1. @Controller
  2. @RequestMapping("/user")
  3. public class UserAction{
  4. @Autowired
  5. private IUserService userService;
  6. public IUserService getUserService() {
  7. return userService;
  8. }
  9. public void setUserService(IUserService userService) {
  10. this.userService = userService;
  11. }
  12. // 查看所有用户信息
  13. @RequestMapping("/userList")
  14. @ResponseBody
  15. public List<SmbmsUser> userList(){
  16. UserCondition coon = new UserCondition();
  17. List<SmbmsUser> userListByCondition = userService.userListCondition(coon);
  18. return userListByCondition;
  19. }
  20. // 查看所有用户信息,做跳转
  21. @RequestMapping("/userView")
  22. public String userView(Model model){
  23. return "userlist";
  24. }
  25. }

这里的 访问 /userView 请求,return 跳转到 template 目录下的 名叫 userlist 这个的文件

4、service 层

  1. @Service
  2. public class UserService implements IUserService {
  3. @Autowired
  4. private IUserDao userDao;
  5. public IUserDao getUserDao() {
  6. return userDao;
  7. }
  8. public void setUserDao(IUserDao userDao) {
  9. this.userDao = userDao;
  10. }
  11. public List<SmbmsUser> userListCondition(UserCondition conn) {
  12. return userDao.userListCondition(conn);
  13. }
  14. }

5、dao 层

  1. @Mapper
  2. public interface IUserDao {
  3. // 查询所有用户信息
  4. public List<SmbmsUser> userListCondition(UserCondition conn);
  5. }

6、mapper.xml文件

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="com.itxzw.user.dao.IUserDao">
  6. <select id="userListCondition" parameterType="userCondition" resultType="smbmsUser">
  7. <![CDATA[
  8. select
  9. u.ID,
  10. u.USERCODE,
  11. u.USERNAME,
  12. u.USERPASSWORD,
  13. u.GENDER,
  14. u.BIRTHDAY,
  15. u.PHONE,
  16. u.ADDRESS,
  17. u.userrole,
  18. u.CREATEDBY,
  19. u.CREATIONDATE,
  20. u.MODIFYBY,
  21. u.MODIFYDATE
  22. from SMBMS_USER u
  23. ]]>
  24. </select>
  25. </mapper>

或者这里可以不用 xml,直接用mybatis plus (mybatis plus 篇下篇更新)。

访问地址 : http://localhost:8080/user/userList

1d502578ed1440c0b53a8dc18702e65c.png

扩:前几天有小伙伴问浏览器是什么插件?

答:csdn 官方的浏览器助手

61cda11d3b074c9895b8cee97c1fb4ad.png

不积跬步无以至千里,趁年轻,使劲拼,给未来的自己一个交代!向着明天更好的自己前进吧!

d5358fcd619443fe98143f2fd5fef762.gif


本文转载自: https://blog.csdn.net/aasd23/article/details/127627590
版权归原作者 Coder.追 所有, 如有侵权,请联系我们删除。

“Springboot 整合与文件配置”的评论:

还没有评论