Spring全家桶系列--[SpringBoot入门到跑路]

简介: Spring全家桶系列--[SpringBoot入门到跑路]

对于之前的Spring框架的使用,各种配置文件XML、properties一旦出错之后错误难寻,这也是为什么SpringBoot被推上主流的原因,SpringBoot的配置简单,说5分钟能从框架的搭建到运行也不为过,现在更是微服务当道,所以在此总结下SpringBoot的一些知识,新手教程。


1.在官网快速创建SpringBoot项目


Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具,它使用一种基于Groovy语言来声明项目设置.也就是和Maven差不多的项目构建工具,为何要使用Gradle,举例:


maven要引入依赖 pom.xml

  1. <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web -->
  2. <dependency>
  3.    <groupId>org.springframework.boot</groupId>
  4.    <artifactId>spring-boot-starter-web</artifactId>
  5.    <version>1.5.15.RELEASE</version>
  6. </dependency>


而Gradle引入 build.gradle

  1. compile group:'org.springframework.boot', name:'spring-boot-starter-web', version:'1.5.15.RELEASE'


很清晰明了,依赖管理比maven强,脚本编写比Ant好用,Google都在使用了,赶紧上手吧!


Gradle本地安装教程


windows :

https://www.cnblogs.com/linkstar/p/7899191.html


Mac_OS :

https://www.jianshu.com/p/e9d035f30876


下面开始进入正题:


进入 https://start.spring.io/ 生成一个初始项目


image.png


这里会下载一个zip的项目压缩包


2. 使用Gradle导入SpringBoot项目


demo.zip解压之后记得复制下demo文件夹放的路径


在此用的开发工具是IntelliJ IDEA


下面是导入流程:


IDEA里点击File -> Open -> 粘贴刚刚的demo文件夹路径 -> 找到build.gradle双击

-> Open as Peoject -> 等待Gradle加载完就好,看不明白看下图


image.png


打开之后Gradle加载下载的特别慢,要换成国内源,打开build.gradle配置文件用下面的替换


build.gradle


/** buildscript中的声明是gradle脚本自身需要使用的资源。
 *  可以声明的资源包括依赖项、第三方插件、maven仓库地址等
 */
buildscript 
{
    ext 
{
        springBootVersion 
=
'1.5.6.RELEASE'
}
    repositories 
{
//使用国内源下载依赖
        maven 
{
 url 
'http://maven.aliyun.com/nexus/content/groups/public/'
}
}
    dependencies 
{
        classpath
(
"org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}"
)
}
}
// 应用Java插件
apply plugin
:
'java'
//让工程支持IDEA的导入
apply plugin
:
'idea'
apply plugin
:
'org.springframework.boot'
group
=
'com.example'
version 
=
'0.0.1-SNAPSHOT'
sourceCompatibility 
=
1.8
//build.gradle文件中直接声明的依赖项、仓库地址等信息是项目自身需要的资源。
repositories 
{
    maven 
{
 url 
'http://maven.aliyun.com/nexus/content/groups/public/'
}
}
/**
 * 在gradle里,对依赖的定义有6种
 * compile, runtime, testCompile, testRuntime, providedCompile,providedRuntime
 * compile:需要引用这个库才能进行编译工作
 * testRuntime : 测试依赖范围
 * 其他的了解:http://shmilyaw-hotmail-com.iteye.com/blog/2345439
 */
dependencies 
{
    compile
(
'org.springframework.boot:spring-boot-starter-web'
)
    testCompile
(
'org.springframework.boot:spring-boot-starter-test'
)
    compile 
'com.alibaba:druid:1.0.29'
}

image.png


3. SpringBoot项目启动


启动前准备,依据下图把 DemoApplication 启动类移到 demo 文件夹的同级;

启动类相当于管理项目的负责人,你把他扔到与控制层同级肯定出错不是;

然后把demo包改名为controller并新建TestController类


image.png


TestController.java

  1. package com.example.controller;

  2. import org.springframework.web.bind.annotation.GetMapping;
  3. import org.springframework.web.bind.annotation.RestController;

  4. /**
  5. * 这里的@RestController相当于 @ResponseBody+@Controller
  6. * 使用@RestController 相当于使每个方法都加上了 @ResponseBody 注解
  7. * created by cfa  2018-11-06 下午 11:30
  8. **/
  9. @RestController
  10. publicclassTestController{


  11.    /**
  12.     * 这里的@GetMapping相当于@RequestMapping(value = "/hello", method = RequestMethod.GET)
  13.     * created by cfa  2018-11-06 下午 11:29
  14.     **/
  15.    @GetMapping("hello")
  16.    publicString test(){
  17.        return"i love java";
  18.    }
  19. }



image.png


启动成功之后访问 http://localhost:8080/hello


image.png


上图成功代表项目可以访问了


4.配置application.yml


什么是yml?


YML文件格式是YAML (YAML Aint Markup Language)编写的文件格式,YAML是一种直观的能够被电脑识别的的数据数据序列化格式,并且容易被人类阅读,容易和脚本语言交互的, 可以被支持YAML库的不同的编程语言程序导入,比如: C/C++, Ruby, Python, Java, Perl, C#, PHP等。引自:https://www.cnblogs.com/hanson1/p/7105248.html


听不懂吧,其实我也看不明白


就是相当于xml,properties的配置文件,看的更直观,上代码吧还是

  1. # 下述properties
  2. spring.resources.locations= classpath:/templates
  3. # 改为yml格式之后
  4. spring:
  5.  resources:
  6.    static-locations: classpath:/templates

yml需要注意,冒号(:)后面要跟空格,第二级和第一级要在上下行用一个T

ab的距离


application.yml

  1. server:
  2.  port:8080
  3. spring:
  4.  datasource:
  5.    type: com.alibaba.druid.pool.DruidDataSource
  6.    driver-class-name: com.mysql.jdbc.Driver
  7.    url: jdbc:mysql://127.0.0.1:3306/ceilan?characterEncoding=utf-8
  8.    username: root
  9.    password:123456
  10.    initialSize:5
  11.    minIdle:5
  12.    maxActive:20
  13.    maxWait:60000
  14.    timeBetweenEvictionRunsMillis:60000
  15.    minEvictableIdleTimeMillis:300000
  16.    validationQuery: SELECT 1 FROM DUAL
  17.    testWhileIdle:true
  18.    testOnBorrow:false
  19.    testOnReturn:false
  20.    poolPreparedStatements:true
  21.    maxPoolPreparedStatementPerConnectionSize:20
  22.    filters: stat,wall
  23.    connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
  24.  mvc:
  25.    view:
  26.      suffix:.html
  27.  resources:
  28.    static-locations: classpath:/templates


5.下期


  • mapper.xml、dao接口、实体类自动生成
  • 集成一个很nice的开发模板
  • CRUD操作以及集成PageHelper分页
  • AOP全局的异常进行处理


相关文章
|
3天前
|
前端开发 Java Nacos
🛡️Spring Boot 3 整合 Spring Cloud Gateway 工程实践
本文介绍了如何使用Spring Cloud Alibaba 2023.0.0.0技术栈构建微服务网关,以应对微服务架构中流量治理与安全管控的复杂性。通过一个包含鉴权服务、文件服务和主服务的项目,详细讲解了网关的整合与功能开发。首先,通过统一路由配置,将所有请求集中到网关进行管理;其次,实现了限流防刷功能,防止恶意刷接口;最后,添加了登录鉴权机制,确保用户身份验证。整个过程结合Nacos注册中心,确保服务注册与配置管理的高效性。通过这些实践,帮助开发者更好地理解和应用微服务网关。
18 0
🛡️Spring Boot 3 整合 Spring Cloud Gateway 工程实践
|
1月前
|
监控 Java 应用服务中间件
SpringBoot是如何简化Spring开发的,以及SpringBoot的特性以及源码分析
Spring Boot 通过简化配置、自动配置和嵌入式服务器等特性,大大简化了 Spring 应用的开发过程。它通过提供一系列 `starter` 依赖和开箱即用的默认配置,使开发者能够更专注于业务逻辑而非繁琐的配置。Spring Boot 的自动配置机制和强大的 Actuator 功能进一步提升了开发效率和应用的可维护性。通过对其源码的分析,可以更深入地理解其内部工作机制,从而更好地利用其特性进行开发。
47 6
|
1月前
|
缓存 安全 Java
Spring Boot 3 集成 Spring Security + JWT
本文详细介绍了如何使用Spring Boot 3和Spring Security集成JWT,实现前后端分离的安全认证概述了从入门到引入数据库,再到使用JWT的完整流程。列举了项目中用到的关键依赖,如MyBatis-Plus、Hutool等。简要提及了系统配置表、部门表、字典表等表结构。使用Hutool-jwt工具类进行JWT校验。配置忽略路径、禁用CSRF、添加JWT校验过滤器等。实现登录接口,返回token等信息。
474 12
|
2月前
|
存储 安全 Java
Spring Security 入门
Spring Security 是 Spring 框架中的安全模块,提供强大的认证和授权功能,支持防止常见攻击(如 CSRF 和会话固定攻击)。它通过过滤器链拦截请求,核心概念包括认证、授权和自定义过滤器。配置方面,涉及密码加密、用户信息服务、认证提供者及过滤器链设置。示例代码展示了如何配置登录、注销、CSRF防护等。常见问题包括循环重定向、静态资源被拦截和登录失败未返回错误信息,解决方法需确保路径正确和添加错误提示逻辑。
116 2
Spring Security 入门
|
1月前
|
存储 安全 Java
Spring Boot 3 集成Spring AOP实现系统日志记录
本文介绍了如何在Spring Boot 3中集成Spring AOP实现系统日志记录功能。通过定义`SysLog`注解和配置相应的AOP切面,可以在方法执行前后自动记录日志信息,包括操作的开始时间、结束时间、请求参数、返回结果、异常信息等,并将这些信息保存到数据库中。此外,还使用了`ThreadLocal`变量来存储每个线程独立的日志数据,确保线程安全。文中还展示了项目实战中的部分代码片段,以及基于Spring Boot 3 + Vue 3构建的快速开发框架的简介与内置功能列表。此框架结合了当前主流技术栈,提供了用户管理、权限控制、接口文档自动生成等多项实用特性。
91 8
|
1月前
|
人工智能 自然语言处理 Java
Spring Cloud Alibaba AI 入门与实践
本文将介绍 Spring Cloud Alibaba AI 的基本概念、主要特性和功能,并演示如何完成一个在线聊天和在线画图的 AI 应用。
411 7
|
2月前
|
Java 开发者 微服务
Spring Boot 入门:简化 Java Web 开发的强大工具
Spring Boot 是一个开源的 Java 基础框架,用于创建独立、生产级别的基于Spring框架的应用程序。它旨在简化Spring应用的初始搭建以及开发过程。
111 7
Spring Boot 入门:简化 Java Web 开发的强大工具
|
2月前
|
缓存 前端开发 Java
【Spring】——SpringBoot项目创建
SpringBoot项目创建,SpringBootApplication启动类,target文件,web服务器,tomcat,访问服务器
|
2月前
|
负载均衡 Java 开发者
深入探索Spring Cloud与Spring Boot:构建微服务架构的实践经验
深入探索Spring Cloud与Spring Boot:构建微服务架构的实践经验
214 5
|
2月前
|
Java 数据库连接 数据库
从入门到精通---深入剖析Spring DAO
在Java企业级开发中,Spring框架以其强大的功能和灵活性,成为众多开发者的首选。Spring DAO(Data Access Object)作为Spring框架中处理数据访问的重要模块,对JDBC进行了抽象封装,极大地简化了数据访问异常的处理,并能统一管理JDBC事务。本文将从概述、功能点、背景、业务点、底层原理等多个方面深入剖析Spring DAO,并通过多个Java示例展示其应用实践,同时指出对应实践的优缺点。
34 1