【原创】SpringBoot入门学习(1)基础框架搭建与相关环境配置

10 篇文章 0 订阅
5 篇文章 0 订阅

该文章只是记录本人学习SpringBootsuo的过程,彼此共勉

搭建基础SpringBoot框架

学习方法转载地址: https://www.cnblogs.com/lcplcpjava/p/7406253.html

  1、web项目传统的搭建方式

  导入jar包,配置tomcat 的context.xml 、web.xml,配置class path ,启动。我靠,怎么一堆报错?classNotFoundException?尼玛哥不是导入了jar包吗,哦版本不对,那我使用maven管理jar包咯,千辛万苦终于配置好maven 并学会了如何使用,启动也没报错了,但是尼玛已经过去打半天了我都还没有开始正式代码的书写,赶紧开始写业务代码吧,又发现spring 中配置老是尼玛的报错,而我他妈只是想要搞个简单的发邮件功能啊。

  所以说,自己搭建web项目,很多步骤都是重复性的,有没有什么工具可以一步达成啊?我只想快点投入到实际业务开发中去,我再也不想折腾jar包版本问题,再也不想折腾那繁琐的配置过程(虽然这是一个很好的学习过程),那么,spring boot 估计是老铁你不二的选择!

  2、spring boot 是什么?

  什么是spring boot?直接copy官网的介绍:

   原谅我并不咋地的英文,官网说,spring boot 可以让你以一种非常简单的方式构建一个机遇Application 的spring 项目,而你索要做的仅仅是run 这个项目,spring boot  集成了主流的框架,我们构建项目大概只需要两三分钟,spring boot 项目,只需要很少的配置即可。

  用了spring boot 后,你会发现,什么配置问题,什么jar包问题统统没有了,你的生产效力会提高很多,因为,spring boot 已经帮你弄好了一个项目原型,你只需要在这个原型上添加自己的业务代码,自己的service 和dao就万事大吉了!

  spring boot 真的有那么厉害?好,下面就开始进入正题,说说怎么搭建利用spring boot搭建项目。

2、spring boot 项目快速搭建

  1、快速搭建一个spring MVC项目

  来开头来个Hello World先吧,下面紧跟我的步伐,利用spring boot 快速搭建一个MVC项目

  第一步,上官网,进行项目原始jar 包的选取,官网在线搭建地址如下:https://start.spring.io/,看图:

 

  特别说明下:在选择你要的jar 包中,一般包括三部分:web部分--包含 了spring、springboot 等常用的web开发必须jar包;spring提供的工具类部分(devTool),这个用于热部署效果;数据库部分,spring boot自动可以帮你继承各种数据库框架,我这里以mybatis 为演示例子,最后选完jar包的效果如下:

  第二步、下载项目并导入IDE,当然,需要版本管理工具的支持,这里推荐IntelliJ IDEA 开发工具(它简直就是web开发的标配!),具体看下面截图:

  

  解压后得到项目文件,然后,就可以打开我们的IDE,这里已我最爱的IntelliJ  idea为例子

  打开idea,找到file-->open-->选择项目的路径,找打pom文件-->以project 形式打开

 

   第三步、hello spring项目 大概长什么样子?打开项目之后,maven 会加载必须的jar包,这段时间,你可以去喝杯香醇的龙井茶或者咖啡,当项目构建完成之后,你会看到下面这样的典型maven目录结构:

  具体各个目录放什么,请参考截图,这里补充说明的是,HelloSpringbootApplication是整个项目的入口,我们启动项目不再是启动tomcat,而是运行这个类,这个类的main方法就是整个项目的main方法即执行入口,

  第四步,写hello demo了。新建一个package demo,然后新建一个类HelloSpringBoot,写入以下代码

 

@RestController
public class HelloSpringBoot {
    @RequestMapping(path = {"/helloSpringBoot"})
    public String HelloSpring (){
        System.out.println("hello spring boot");
        return "hello spring boot";
    }
}

 

  我们先不解释这个类里面的东西,先配置并启动网站,初步感受下spring boot的魔力:

  在启动网站前,由于spring boot 是默认自动注册加载数据库相关的类文件的,所以为了不报错,我们需要打开数据库并在resource目录下的application.property中加入数据库配置相关文件,这里以mysql为例子,配置文件如下:

  

spring.datasource.url=jdbc:mysql://localhost:3306/wenda?useUnicode=true&characterEncoding=utf8&useSSL=false
spring.datasource.username=root
spring.datasource.password=root

  配置文件中各个字段含义估计读者也能看懂,后面会再具体说明。

  当然,如果没有安装数据库,读者也可以在HelloSpringbootApplication 类中利用exclude属性声明不自动注册加载数据库相关文件,具体参考下面的代码:

 

@SpringBootApplication(exclude={DataSourceAutoConfiguration.class,MybatisAutoConfiguration.class})//这里的MybatisAutoConfiguration.class对应你的数据库框架
public class HelloSpringbootApplication {

    public static void main(String[] args) {
        SpringApplication.run(HelloSpringbootApplication.class, args);
    }
}

 

  然后,我们所有的工作就完成了,可以启动网站了,见证奇迹的时候到了。

  找到 HelloSpringbootApplication类,双击打卡,右击鼠标,run,然后项目就启动了。

 

  启动网站之后,输入http://localhost:8080/helloSpringBoot即可访问对应的方法。浏览器以及idea后台效果如图

  

  这里简单解释下这个类里面的东西的含义:

  首先是@RestController这个注解:用过spring的大佬估计知道是什么东西,当我们其他类要通过spring引用该类时,第一步就是要将该类注册到spring中,@RestController就是相当于将这个类注册到spring容器的意思当然,还有一种比较常用的就是@Controller,具体他们两区别后面再讨论吧。

  然后就是@RequestMapping,通过设置这个注解里面面的path属性,就可以声明相对于项目根路径(localhost:8080)的访问路径。

  

  2、spring boot 项目中利用springMVC实现传参

  上面的demo中的方法只是一个非常简单的实例,在实际生产中, 我们的应用不可能这么简单的,前端还需要传输参数到后台,所以,用spring boot 构造的项目中,又如何实现传参呢?(感觉下面的都是在总结sprign MVC相关的内内容了,所以大神勿喷我脱离主题,因为感觉spring boot 如果单独总结的话,貌似的确没什么好总结的,而且spring boot 天生就不可能和其他spring 组件分割)具体请参开下面代码例子:

 

@RestController
public class HelloSpringBoot {/**
     * url传参,访问的路径类似这样:localhost:8080/getParamDemo1/1
     * 方法体中的参数要在前面加注释,@PathVariable,代表url中的参数
     */
    @RequestMapping(path = {"/getParamDemo1/{id}"})
    public String getParamDemo1 (@PathVariable("id") int userId){
        System.out.println("get param " + userId);
        return "success get param";
    }
    /**
     * 当然,你也可以通过这种传参方式:localhost:8080/getParamDemo?param1=1或者直接表单提交参数
     * 当然,同时方法中参数声明的注释也要变成@RequestParam,代表请求参数,required属性说明了参数是否是必须的
     */
    @RequestMapping(path = {"/getParamDemo2"})
    public String getParamDemo2 (@RequestParam(value="param1",required = false) int param){
        System.out.println("get param " + param);
        return "success get param";
    }
}

 

  

  3、构建restful编程风格

   最近,resultful风格编程挺火的(虽然个人觉得不可盲目跟风),而spring boot中利用其内置的spring MVC等框架,可以非常简单地实现这种编程风格。

  例如说,我要请求查询一个数据,在resultful类的编程风格中,查询对应的是get请求,那么,spring boot(准确说是spring MVC) 可以针对不同的请求进行处理,请看下面代码:

 

@RestController
public class HelloSpringBoot {

    /**
     * 通过设置RequestMapping的method属性便可以设置该方法可处理的对应请求了,例如下面的getRequestDemo方法只会处理get请求
     */
    @RequestMapping(path = {"/getRequestDemo"},method = RequestMethod.GET)
    public String getRequestDemo (@RequestParam(value="param1",required = false) int param){
        System.out.println("get request test ,get param " + param);
        return "success get param";
    }
    /**
     * 下面的deleteRequestDemo方法只会处理delete请求
     */
    @RequestMapping(path = {"/deleteRequestDemo"},method = RequestMethod.DELETE)
    public String deleteRequestDemo (@RequestParam(value="param1",required = false) int param){
        System.out.println("delete request test ,get param " + param);
        return "success get param";
    }
}

 

  另外,利用上面说的url中的值(类似这个:path="/member/{userid}")进行资源定位,也非常符合resultful的风格要求,例如这path="/getParamDemo1/{userid}"的配置就是对应的就是对会员级别的某个用户(由userid定位)进行某些操作,如果要删除该用户,则对应http请求的delete请求即可。

本人遇到问题以及解决方案

问题1:编写完成测试接口,发现测试接口无法使用

解决:注意接口的相关配置以及接口所处的包,避免接口与启动程序不在一个包内出现接口无法使用的问题

问题2:pom.xml文件的配置,这个算是解决方案,其实SpringBoot支持热部署的,参照后面的链接:https://www.cnblogs.com/lspz/p/6832358.html

问题3:由于SpringBoot默认端口时8080,需要修改端口却没有方法修改对应的端口

解决:下面是转载别人的,链接为:https://blog.csdn.net/qq_29884151/article/details/80447702

下面来说说将工程改成application.yml配置文件的详细步骤

第一步:在application.properties 文件的同级目录下新建一个 application.yml 文件

第二步:添加application.yml文件中的配置如下:

server:
  port: 8088

spring:
    datasource:
        name: test
        url: jdbc:mysql://localhost:3306/test
        username: root
        password: xxx
        # 使用druid数据源
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: com.mysql.jdbc.Driver
        filters: stat
        maxActive: 20
        initialSize: 1
        maxWait: 60000
        minIdle: 1
        timeBetweenEvictionRunsMillis: 60000
        minEvictableIdleTimeMillis: 300000
        validationQuery: select 'x'
        testWhileIdle: true
        testOnBorrow: false
        testOnReturn: false
        poolPreparedStatements: true
        maxOpenPreparedStatements: 20


如图所示:

第三步:删除原有的application.properties文件

文件结构如图示:

第四步,重新编译maven工程

找到maven工具栏,双击clean,待执行完成后,双击install,执行完成则编译成功。

第四步,重启springboot项目

没有任何问题:

The End

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值