使用IDEA创建spring boot项目以及介绍

文章介绍

本文为我学习日志,记录学习过程。整体章节分为16章

  1. spring boot 入门
  2. 配置
  3. spring boot 与日志
  4. 与web开发
  5. 与Docker
  6. 与数据访问
  7. 与启动配置原理
  8. spring boot自定义starters
  9. spring boot与缓存
  10. 与消息
  11. 与检索
  12. 与任务
  13. 与安全
  14. 与分布式
  15. 与开发热部署
  16. 与监控管理

spring boot 简介

作用:帮我们很快的简单的创建一个独立的产品级别的应用
优点:

  • 快速创建
  • 使用嵌入式的Servlet容器,应用无需打包成war
  • starters(启动器)自动依赖于版本控制
  • 大量的自动配置,简化开发,可以修改默认值
  • 无需配置xml,无代码生成,开箱即用
  • 准备生产环境的运行时应用监控
  • 于云计算的天然集成
    缺点:
  • 入门容易,精通难(需要掌握spring底层非常了解)

J2EE开发的一站式部署

微服务

背景:Martion fowler的博客,设计思想
微服务是一种架构风格,开发一个应用时应为一组小型服务的组合;通过http方式进行互通;每一个功能元素最终都是一个可独立替换可独立升级的软件单元。
单体应用:ALL IN ONE

环境准备

jdk1.8
maven3.0
IEDA2019
spring boot 2.1.5

maven:给mavensetting.xml文件添加代码

<profile>
      <id>jdk-1.8</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>

IDEA设置
Maven配置

spring boot 之Hello world

实现一个功能:浏览器发送一个hello请求,服务器接受服务器请求,相应Hello World字符串;

  1. 创建一个maven工程
    IDEA创建maven项目
  2. 添加spring boot相关依赖
<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.5.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
  1. 编写主程序
package ink.poesy;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class HelloSpringBootApplication {
    public static void main(String[] args) {
        SpringApplication.run(HelloSpringBootApplication.class,args);
    }
}
  1. 编写相关的Controller和servlet
package ink.poesy.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class HelloController {
    @ResponseBody//目的是为了把hello world返回给请求
    @RequestMapping("/hello")
    public String hello(){
        return "Hello world!";
    }
}
  1. 直接运行主程序访问localhost:8080/hello打印出Hello world!
  2. 简化部署工作
<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

直接使用这个工具就可以进行打包

hello world 之探究


spring-boot-starter-web依赖:帮我们导入web模块正常运行所依赖的组件
spring boot 将所有的功能场景抽取出来,做成一个个Starters启动器,只需要在项目里面引入这些starter相关的场景的所有依赖都会导入进来,要用什么功能就导入什么场景的启动器。

主程序

核心注解:@SpringbootApplication标注在某个类上说明这个类是springboot的主配置类

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(
    excludeFilters = {@Filter(
    type = FilterType.CUSTOM,
    classes = {TypeExcludeFilter.class}
), @Filter(
    type = FilterType.CUSTOM,
    classes = {AutoConfigurationExcludeFilter.class}
)}
)
public @interface SpringBootApplication {

解释:
@SpringBootConfiguration:Spring boot的配置类
 标注某个类上,表示这是一个spirng boot配置类:
  @Configuration:配置类上标注这个注解:
    配置类----配置文件;配置类也是容器组件中的一个;@Component
@EnableAutoConfiguration:开启自动配置功能
  以前我们需要配置的东西,spring boot帮我们自动配置,这个注解告诉spring boot开启自动配置功能;这样自动配置才能生效。
  进入到这个注解中我们看到使用:
  @AutoConfigurationPackage:自动配置包
    下面@Import:给容器导入一个组件;
@Import(EnableAutoConfigurationImportSelector.class);给容器中导入组件nableAutoConfigurationImportSelector.class:导入那些组件选择器:将所有导入的组件以全类名的方式返回,这些组件就会被添加到容器中;最终会给容器中导入非常多的自动配置类(xxxAutoCOnfiguration);就是给容器中导入这个场景需要的所有组件,并配置好这些组件;有了这些自动配置类,免去我们手动编写配置和注入功能组件等工作;
作用:将主配置类(@SpringBootConfiguration标注的类)的所在包及下面所有自曝里面的所有组件扫描到spring容器;
@ComponentScan

IDEA使用Spring 快速创建spring boot工程

使用Spring boot
IDEA使用Initializr快速创建spring boot工程
下一步,创建项目
New Project
选择模块,导入场景,需要导入相关功能的依赖。
选择模块
配置项目路径
配置项目路径
选择自动加载
选择自动加载
我这里需要修改Maven配置
Controller类

package ink.poesy.springboot01helloworldquick.Controller;

import org.springframework.web.bind.annotation.RestController;

@RestController//@ResponseBody和@Controller的集合
public class HelloWorldQuick {
	@RequestMapping("hello")//这句上面截图忘记了
    public String helloWorldQuick(){
        return "Hello World Quick Create Spring Boot!";
    }
}

运行效果
运行效果
默认生成的spring boot项目:

  • 主程序已经生成好了,我们只需要编写我们自己的逻辑
  • resources文件夹中的目录结构
    Static:保存所有的静态资源;js css images;
    templates:保存所有的模版页面;(Spring boot默认jar包使用嵌入式Tomcat,默认不支持JSP页面);可以使用模版引擎(freemarker、thymelef);
    application.properties:修改默认配置

遇到的问题

IDEAsetting找不到

因为新换了macOS系统使用苹果系统的IDEA没找见setting,不能配置maven

macOS配置环境

没有配置maven环境变量导致项目找不到maven库
macOS显示隐藏文件
这里还遇到了配置环境变量时创建bash_profile文件导致全部环境变量不可用,解决方案

  1. 在命令窗口章节书写下面命令,保证命令暂时起作用
    export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
  2. 编辑.bash_profile文件
    vim ~/.bash_profile
  3. 点击i进入编辑命令
  4. 添加上边那句话到文件
  5. 按esc退出编辑命令,输入:填写wq保存退出
  6. 关闭命令窗口,重新进入输入命令。

IDEA完全没有代码提示

Idea完全没有代码提示

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

园长的牧歌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值