SpringBoot入门

  1. SpringBoot

 

 

    1. 环境配置
      1. 安装JDK

版本说明:必须使用JDK1.8版本.

  1. JDK文件

  1. 配置环境变量

 

配置path:

Java中必须配置JDK.否则程序运行出错.注意写法

;%JAVA_HOME%\bin

;D:/JDK1.8\bin

 

      1. 开发工具(IDE)
  1. Eclipse
  2. STS  https://spring.io/tools
  3. Idea 
      1. Maven
        1. 版本要求

说明:Maven要求至少3.3及以上版本.

        1. Maven工作原理

介绍:Maven是一站式的项目管理工具. 项目创建/项目打包/聚合/测试/jar包依赖.

原理:

        1. Maven配置文件说明

说明:Maven中有settings配置文件.
本地仓库设定(不是必须)

<!--定义本地仓库路径 如果pom.xml文件报错,则切换本地仓库-->

<localRepository>E:/software/mvn_repo</localRepository>

 

<!--阿里云镜像-->

<mirror>

        <id>nexus-aliyun</id>

        <mirrorOf>*</mirrorOf>

        <name>Nexus aliyun</name>

        <url>http://maven.aliyun.com/nexus/content/groups/public</url>

  </mirror>

 

JDK版本配置

<!-- 全局jdk配置,settings.xml -->  

    <profile>    

        <id>jdk18</id>    

        <activation>    

            <activeByDefault>true</activeByDefault>    

            <jdk>1.8</jdk>    

        </activation>    

        <properties>    

            <maven.compiler.source>1.8</maven.compiler.source>    

            <maven.compiler.target>1.8</maven.compiler.target>    

            <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>    

        </properties>     

</profile>

 

编辑路径时额外注意 不要有中文/不要放C盘

        1. STS中引入Maven

 

        1. Maven Settings文件配置

      1. Mysql

说明:Mysql要求至少5.5及5.7

    1. SpringBoot
      1. SpringBoot介绍

SpringBoot是学习SpringCloud的基石.也是当下最火的技术.

 

概念:

Spring Boot是构建所有基于Spring的应用程序的起点。Spring Boot旨在尽可能快地启动和运行,只需最少的Spring前端配置。自己内部添加了单独tomcat服务器.要求项目尽可能独立运行.

    1. SpringBoot入门案例
      1. 项目构建
        1. 官网构建

 

2.STS构建项目

 

 

项目创建结果,以下内容全部都是自动生成.

 

注意springBoot版本号编辑.将默认的SpringBoot版本改为2.1.3.RELEASE即可.

      1. 代码编辑
        1. 编辑主启动类

注意:主启动类的包路径.就是包扫描的路径

@SpringBootApplication

public class SpringbootApplication {

 

public static void main(String[] args) {

SpringApplication.run(SpringbootApplication.class, args);

}

 

}

        1. 编辑测试类Controller

@SpringBootApplication

public class SpringbootApplication {

 

public static void main(String[] args) {

SpringApplication.run(SpringbootApplication.class, args);

}

 

}

        1. 页面效果

 

      1. 关于SpringBoot项目报错说明
        1. 项目版本问题

将主版本由2.1.5改为2.1.3

<parent>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-parent</artifactId>

<version>2.1.3.RELEASE</version>

<relativePath/> <!-- lookup parent from repository -->

</parent>

      1. POM.xml文件报错

通过检查发现jar包现在不完整.

  1. 强制更新Maven文件
  2. 修改maven链接镜像  将达内镜像改为阿里云镜像.
        1. 端口被占用

说明:端口被占用.关闭进程项,重启启动.

 

      1. 关于SpringBoot中Pom.xml说明

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>

<!--继承springBoot程序中定义的公共jar包  -->

<parent>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-parent</artifactId>

<version>2.1.3.RELEASE</version>

<relativePath/> <!-- lookup parent from repository -->

</parent>

 

<!--当前项目定义的坐标  -->

<groupId>com.xx.springboot</groupId>

<artifactId>springboot</artifactId>

<version>0.0.1-SNAPSHOT</version>

<name>springboot</name>

<description>Demo project for Spring Boot</description>

 

<!--定义JDK版本  -->

<properties>

<java.version>1.8</java.version>

</properties>

 

<!--jar包依赖

@EnableAutoConfiguration

主要依赖中添加了以spring-boot-starter

会自动的加载包中的配置信息.为程序简化.

 -->

<dependencies>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

</dependency>

 

<!--自动添加SpringBoot测试类功能  -->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-test</artifactId>

<scope>test</scope>

</dependency>

</dependencies>

 

<!--内部配置tomcat服务器.将来项目打包部署时必须依赖该配置  -->

<build>

<plugins>

<plugin>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-maven-plugin</artifactId>

</plugin>

</plugins>

</build>

</project>

    1. SpringBoot测试类使用
      1. 定义实体对象

定义POJO对象.

      1. 测试类测试

@RunWith(SpringRunner.class)

@SpringBootTest//springboot启动加载对象

public class SpringbootApplicationTests {

 

@Autowired

private User user;

 

@Test

public void testUser() {

user.setId(100);

user.setName("springboot");

System.out.println(user);

}

}

 

 

 

-----------------------------------------------------------------------------------------------------------------------------------------------------------------

  1. SpringBoot用法
    1. 配置文件
      1. 配置文件名称

说明:SpringBoot程序默认加载名为application这样的配置文件.进行加载.

      1. Application.properties说明

Springboot默认提供的是properties配置文件.但是该配置文件加载繁琐.官方不建议使用.

#修改端口号

server.port=8090

#默认项目部署到了ROOT文件夹中

server.servlet.context-path=/

      1. YML文件写法

#1.使用yml文件有层级结构 缩进

#2.使用yml文件key value 之间使用 :号连接

#3.赋值时:号后边必须加空格

server:

  port: 8090

  servlet:

    context-path: /

 

    1. SpringBoot为属性赋值
      1. 业务需求

说明:在配置文件中定义user信息id/username/age.之后将user信息赋值给user对象.

      1. @Value注解赋值
        1. 编辑pojo对象

        1. 编辑yml配置文件

        1. 测试类取值

        1. 关于赋值总结
  1. 编辑yml配置文件  注意缩进
  2. 编辑POJO对象时  必须交给Spring容器管理
  3. 注意取值注解写法 @Value(“${key}”)
  4. 注意测试类位置

        1. 注意事项

利用容器取值时,需要额外的注意名称 不能为user.name,否则可能与计算机名称重复!!!!

      1. 利用前缀赋值
        1. 业务说明

当对象的属性中有多个属性时,赋值时繁琐,则可以利用前缀为属性赋值.

        1. 引入第三方jar包

<!--添加属性注入依赖  -->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-configuration-processor</artifactId>

<optional>true</optional>

</dependency>

        1. 添加注解
  1. 编辑YML文件

 

      1. 制定配置文件为属性赋值
        1. 编辑properties配置文件

        1. 添加注解

    1. 多环境配置
      1. 需求说明

软件在开发阶段会有多个环境进行测试.这时需要频繁的修改yml配置,导致开发不便.

语法: --- 进行环境分割

      1. Yml文件写法

#编辑环境默认值

spring:

  profiles:

    active: dev

 

#1.使用yml文件有层级结构 缩进

#2.使用yml文件key value 之间使用 :号连接

#3.赋值时:号后边必须加空格

---  #环境分割线

spring:

  profiles: dev

server:

  port: 8090

  servlet:

    context-path: /

 

#为user属性赋值  可以编辑中文

user:

  id: 100

  username: 哥斯拉2

  age: 2002

--- #环境分割线

spring:

  profiles: prod

 

server:

  port: 8081

  servlet:

    context-path: /xx(自定义路径)

 

user:

  id: 2000

  username: 哥斯拉10

  age: 10000

 

 

 

 

 

 

 

 

 

    1. 实现项目热部署
      1. 需求说明

当修改YML文件后,程序需要手动启动,需要实现自动的部署

      1. 引入jar包

在pom.xml文件中添加该文件信息.当ctrl+s时检查项目是否自动部署.

<!--支持热部署 -->

<dependency>

<groupId>org.springframework</groupId>

<artifactId>springloaded</artifactId>

<version>1.2.8.RELEASE</version>

</dependency>

 

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-devtools</artifactId>

</dependency>

    1. 配置类引入
      1. 需求说明

在原有SSM框架中,需要通过配置文件 xxxx.xml进行对象的配置

利用<bean  id=”XXX”  class=”路径.名称” />

但是引入的配置文件太多以后导致程序加载速度慢.并且配置文件编辑繁琐.

引入配置类代替配置文件.

 

      1. 引入第三方jar包

//该类是写在第三方jar包中 其他程序调用即可

public class Shiro {

 

public void pri() {

System.out.println("我是权限控制的类");

}

}

      1. 编辑配置类

//该类中标识就是xml中数据  <bean id="方法名" class="返回值类型" />

@Configuration

public class ShiroConfig {

/**

 * public 返回值类型  方法名称(参数列表)

 * <bean id="方法名" class="返回值类型" />

 * @return

 */

@Bean

public Shiro shiro() {

 

return new Shiro();

}

}

      1. 编辑测试类

//测试配置类

@Autowired

private Shiro shiro;

@Test

public void testShiro() {

 

shiro.pri();

}

    1. 导入mysql数据库
      1. 导入数据库操作工具

说明:(或者source导入)

之后点击执行导入数据库文件.

 

    1. SpringBoot整合Mybatis
      1. 创建项目com.xx.springboot-mybatis

      1. 添加pom.xml文件

<project xmlns="http://maven.apache.org/POM/4.0.0"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>

<groupId>com.xx</groupId>

<artifactId>springboot-mybatis</artifactId>

<version>0.0.1-SNAPSHOT</version>

 

<properties>

<java.version>1.8</java.version>

</properties>

 

<parent>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-parent</artifactId>

<version>2.1.3.RELEASE</version>

<relativePath />

</parent>

 

<dependencies>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

</dependency>

 

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-test</artifactId>

<scope>test</scope>

</dependency>

 

<!--添加属性注入依赖 -->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-configuration-processor</artifactId>

<optional>true</optional>

</dependency>

 

<!--引入插件lombok 自动的set/get/构造方法插件 -->

<dependency>

<groupId>org.projectlombok</groupId>

<artifactId>lombok</artifactId>

</dependency>

 

<!--支持热部署 -->

<dependency>

<groupId>org.springframework</groupId>

<artifactId>springloaded</artifactId>

<version>1.2.8.RELEASE</version>

</dependency>

 

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-devtools</artifactId>

</dependency>

 

<!--引入数据库驱动 -->

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

<scope>runtime</scope>

</dependency>

 

<!--引入druid数据源 -->

<dependency>

<groupId>com.alibaba</groupId>

<artifactId>druid</artifactId>

<version>1.1.12</version>

</dependency>

 

<!--spring整合mybatis 暂时 -->

<dependency>

<groupId>org.mybatis.spring.boot</groupId>

<artifactId>mybatis-spring-boot-starter</artifactId>

<version>1.3.2</version>

</dependency>

</dependencies>

 

<build>

<plugins>

<plugin>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-maven-plugin</artifactId>

</plugin>

</plugins>

</build>

</project>

      1. 编辑YML映射文件

server:

  port: 8090

  servlet:

    context-path: /

 

#引入数据源配置

spring:

  datasource:

    #引入druid数据源

    type: com.alibaba.druid.pool.DruidDataSource

    driver-class-name: com.mysql.jdbc.Driver

    url: jdbc:mysql://127.0.0.1:3306/xxdb?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true

    username: root

    password: root

 

#spring整合Mybatis

mybatis:

    #配置别名包

  type-aliases-package: com.xx.pojo

  #配置mapper映射

  mapper-locations: classpath:/mybatis/mappers/*.xml

  #开启驼峰映射

  configuration:

    map-underscore-to-camel-case: true

      1. 开启驼峰映射

表名:user

字段:user_id,user_name,user_age,user_sex

 

对象:User

属性:userId,username,userAge,userSex;

 

问题说明:

 Mybatis中如果实现ORM对象映射,则要求对象中的属性与表中的字段必须一一映射. 但是现在表中的字段与属性名称不一致.中间多”_”.导致映射不成功!!

 

解决方案:开启驼峰映射规则

Mybatis:

configuration:

        map-underscore-to-camel-case: true

则可以自动的实现对象的赋值.

驼峰映射原理:

  1. 根据sql语句获取结果集对象.
  2. 利用resultType实现赋值时发现字段与对象的属性不否.
  3. 利用驼峰映射将字段user_id中的”_”去除---àuserid
  4. 将后边首字母大小------àuserId
  5. 将数据库中的值自动映射给对象中的属性userId
      1. 编辑POJO

      1. 编辑Mapper接口/映射文件

 

      1. 编辑Service

@Service

public class UserServiceImpl implements UserService {

//接口实例化: 1.创建实现类 2.创建代理对象 JDK CGLIB

//原则: 如果代理对象有接口则使用JDK代理

// 如果代理者没有实现接口 则使用cglib代理

@Autowired

private UserMapper userMapper;

 

@Override

public List<User> findAll() {

 

return userMapper.findAll();

}

}

      1. 编辑Controller

@RestController

public class UserController {

@Autowired

private UserService userService;

//用户通过localhost:8090/findAll获取用户数据

@RequestMapping("/findAll")

public List<User> findAll(){

 

return userService.findAll();

}

}

      1. 编辑主启动

@SpringBootApplication

//为mapper接口创建代理对象

@MapperScan("com.xx.mapper")

public class SpringBootRun {

 

public static void main(String[] args) {

 

SpringApplication.run(SpringBootRun.class, args);

}

}

页面效果

      1. 页面效果

 

 

 

 

----------------------------------------------------------------------------------------------------------------------------------------------------------------

    1. Lombok(红番椒)
      1. 需求说明

对于POJO对象,不光需要编辑属性,还需要编辑get/set/toString/构造/equals….  能否自动生成???

 

      1. 引入jar包

<!--引入插件lombok 自动的set/get/构造方法插件 -->

<dependency>

<groupId>org.projectlombok</groupId>

<artifactId>lombok</artifactId>

</dependency>

      1. 安装插件

说明:根据pom.xml文件中的配置.找到lombok文件夹下的jar包文件

  1. 利用java –jar 指令启动插件

 

选择STS文件

之后点击install 表示安装成功!!!

      1. 编辑配置文件
  1. 检查是否生成lombok.jar包文件

 

  1. 编辑INI文件

在文件最后添加下行配置

-vmargs -javaagent:lombok.jar

 

修改完成之后,重启STS.如果重启报错,则检查JDK.之后重新执行上述操作.

      1. LomBok使用

 Lombok主要常用的注解有:@Data,@getter,@setter,@NoArgsConstructor,@AllArgsConstructor,@ToString,@EqualsAndHashCode,@Slf4j,@Log4j。我们一个一个来看:

 

@Data注解:在JavaBean或类JavaBean中使用,这个注解包含范围最广,它包含getter、setter、NoArgsConstructor注解,即当使用当前注解时,会自动生成包含的所有方法;

 

@getter注解:在JavaBean或类JavaBean中使用,使用此注解会生成对应的getter方法;

 

@setter注解:在JavaBean或类JavaBean中使用,使用此注解会生成对应的setter方法;

 

@NoArgsConstructor注解:在JavaBean或类JavaBean中使用,使用此注解会生成对应的无参构造方法;

 

@AllArgsConstructor注解:在JavaBean或类JavaBean中使用,使用此注解会生成对应的有参构造方法;

 

@ToString注解:在JavaBean或类JavaBean中使用,使用此注解会自动重写对应的toStirng方法;

 

@EqualsAndHashCode注解:在JavaBean或类JavaBean中使用,使用此注解会自动重写对应的equals方法和hashCode方法;

 

@Slf4j:在需要打印日志的类中使用,当项目中使用了slf4j打印日志框架时使用该注解,会简化日志的打印流程,只需调用info方法即可;

 

@Log4j:在需要打印日志的类中使用,当项目中使用了log4j打印日志框架时使用该注解,会简化日志的打印流程,只需调用info方法即可;

 

在使用以上注解需要处理参数时,处理方法如下(以@ToString注解为例,其他注解同@ToString注解):

 

@ToString(exclude="column")

 

意义:排除column列所对应的元素,即在生成toString方法时不包含column参数;

 

@ToString(exclude={"column1","column2"})

 

意义:排除多个column列所对应的元素,其中间用英文状态下的逗号进行分割,即在生成toString方法时不包含多个column参数;

 

@ToString(of="column")

 

意义:只生成包含column列所对应的元素的参数的toString方法,即在生成toString方法时只包含column参数;;

 

@ToString(of={"column1","column2"})

意义:只生成包含多个column列所对应的元素的参数的toString方法,其中间用英文状态下的逗号进行分割,即在生成toString方法时只包含多个column参数;

@Accessors(chain=true)

链式加载

      1. 引用效果

说明:虽然自己没有写get/set方法.但是STS根据插件自动生成了class文件.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot是一个用于构建基于Spring框架的应用程序的开源框架。它提供了一种简化的方法来配置和部署应用程序,使开发人员能够更地开发和运行应用程序Spring Boot Actuator是Spring Boot的一个组件,它可以帮助我们监控和管理Spring Boot应用程序,包括健康检查、审计、统计和HTTP追踪等功能。要使用Spring Boot Actuator,只需引入相应的起步依赖,并在应用程序的入口点类上添加@SpringBootApplication注解即可。在该类中,使用@SpringBootApplication注解相当于同时添加了@Configuration、@EnableAutoConfiguration和@ComponentScan注解,它标识了当前应用程序是一个Spring Boot应用程序。要启动Spring Boot应用程序,只需在主启动类中编写main函数,通过调用SpringApplication.run(Application.class, args)方法来启动应用程序。在开发过程中,<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [SpringBoot入门](https://blog.csdn.net/weixin_45905210/article/details/121712027)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* [spring boot 入门](https://blog.csdn.net/zhshx19900318/article/details/129476812)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值