Springboot-HelloWorld

1.引入依赖

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.4.RELEASE</version>
</parent>


    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
</dependencies>

2.主程序类

/**
 * 主程序类
 * @SpringBootApplication:这是一个SpringBoot应用
 */
@SpringBootApplication
public class MainApplication {

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

2.1 SpringBootApplication注解

SpringBootApplication可由下面下面三个注解代替
image

1.@SpringBootConfiguration:---->@Configuration

标注这个类是一个配置类;

它继承自@Configuration注解;

它与@Configuration注解的功能一致;

只不过@SpringBootConfiguration是springboot的注解,而@Configuration是spring的注解。

标注当前类是配置类,并会将当前类内声明的一个或多个以@Bean注解标记的方法的实例纳入到spring容器中,并且实例名就是方法名。

2.@EnableAutoConfiguration

image

@Import(AutoConfigurationImportSelector.class),
借助AutoConfigurationImportSelector,@EnableAutoConfiguration可以帮助SpringBoot
应用将所有符合条件的@Configuration配置都加载到当前SpringBoot创建并使用的IoC容器。

自动配置这方面后期在研究研究

3.@ComponentScan

组件扫描,如果没有配置value则默认扫描 XxxApplication.java所在目录以及其子目录
image

3.1 value

指定要扫描的包路径
@ComponentScan(value = "com.zx.controller")

3.2 excludeFilters(排除规则)
excludeFilters=Filter[] 指定包扫描的时候根据规则指定要排除的组件
3.3 includeFilters(包含规则)
includeFilters =Filter[] 指定包扫描的时候根据规则指定要包含的组件.
注意:要设置useDefaultFilters = false(系统默认为true,需要手动设置) includeFilters包含过滤规则才会生效。

参考连接

3.Controller类

从HTTP请求中获取信息,提取参数,并将其分发给不同的处理服务(service层),并向前端返回service层处理后的数据(JSON数据或者ModelAndView对象)。

@RestController
public class HelloController {
    @RequestMapping("/hello")
    public String handle01(){
        return "Hello, Spring Boot 2!";
    }


}

3.1@RestController

等同于@Controller + @ResponseBody
image

3.1.1@Controller

标注这是一个控制类,将类映射为Controller层,添加到IoC容器中

3.1.2@ResponseBody

@ResponseBody表示方法的返回值直接以指定的格式写入Http response body中,
而不是解析为跳转路径。该注解标注的返回类型都是数值型(字符串或json格式数据)

4.运行main,默认url:localhost:8080

5.配置相关

image

springboot项目创建完成后在resources目录下会自动生成名为application.properties的配置文件我们也可以自己建立名为application.yml/yaml的文件,本质上是相同的只是语法略有不同

`application.properties`
	语法结构: key=value

`application.yml`
	语法结构: key:空格 value

application.properties配置实例

#配置访问端口号
server.port=8081
#描述数据源
spring.datasource.url=jdbc:mysql://localhost:3306/tanglong?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&serverTimezone=Asia
spring.datasource.username=root
spring.datasource.password=0000
spring.datasource.driverClassName = com.mysql.cj.jdbc.Driver
spring.datasource.type = com.alibaba.druid.pool.DruidDataSource

更多配置请参考

application.yaml配置实例

spring:
  application:
#1.服务名称信息
      name: mimi
#2.配置启动banner的编码和文字
  banner:
    charset: UTF-8
    location: classpath:banner.txt
#3.spring:datasource下的)配置数据库
  datasource:
    #1.配置数据库连接池(Druid,),HikariCP 是默认的
    type: com.alibaba.druid.pool.DruidDataSource
    #2.数据库的地址
    url: jdbc:mysql://localhost:3306/demo?characterEncoding=UTF-8&serverTimezone=GMT%2B8
    #3.配置数据库驱动,jdbc
    driver-class-name: com.mysql.cj.jdbc.Driver
    #4.配置数据库连接的账号
    username: root
    #5.配置数据库连接的密码
    password: 123456
#4.(spring:mvc下的)关于springmvc的设置
  mvc:
    #1.静态资源的过滤规则(在静态资源目录下,只有以/resources/开头的才能显示,不然不能显示)
       static-path-pattern: /resources/**
#5.(spring:resources下的)设置静态资源的路径(默认的是classpath:/static,classpath:/public,classpath:/resources,classpath:/META-INF/resource)
  resources:
      static-locations: ["classpath:/static/", "classpath:/public/","classpath:/mapper/"]
#6.thymeleaf的模板配置
  thymeleaf:
      prefix: classpath:/templates
      mode: HTML
      cache: false
      encoding: UTF-8
      #     新版本不支持content-type: text/html,故新写法
      servlet:
        content-type: text/html

优先级1:项目路径下的config文件夹配置文件
优先级2:项目路径下配置文件
优先级3:资源路径下的config文件夹配置文件
优先级4:资源路径下配置文件
默认生成的配置文件优先级最低

<!--导入配置文件处理器,配置文件进行绑定就会有提示-->
<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-configuration-processor</artifactId>
 <optional>true</optional>
</dependency>
posted @   云深不知处ZERO  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示