SpringBoot学习笔记(一)

SpringBoot简介

  • 简化SSM开发的创建和开发过程,抛弃了繁琐的xml配置过程,采用大量默认配置。
  • 快速创建基于Spring框架的应用程序,编码、配置、部署、监控都变得简单。
  • 关注趋势图:http://t.cn/ROQLquP

SpringBoot特性

  • 快速创建基于Spring的程序
  • 直接使用java main方法启动内嵌的Tomcat,Jetty服务器运行SpringBoot程序,不需要部署war包
  • 起步依赖,提供约定的starter POM简化Maven配置
  • 根据项目的依赖配置,SpringBoot自动配置Spring、SpringMVC等
  • 提供程序的健康检查等功能
  • 基本可以完全不使用xml配置文件,采用注解配置

SpringBoot 四大核心

  • 自动配置:针对很多Spring应用程序和常见的应用功能,SpringBoot能自动提供相关配置;
  • 起步依赖:告诉SpringBoot需要的功能,就能引入需要的依赖库;
  • 健康检查(Actuator):深入运行中的SpringBoot应用程序,查看程序的内部信息;
  • 命令行界面:此为可选特性,针对Groovy语言使用;

快速开发一个SpringBoot程序步骤

  1. 创建一个SpringBoot项目
  2. 加入SpringBoot的父级和起步依赖;
  3. 创建SpringBoot的入口main方法
  4. 创建一个Spring mvc的Controller
  5. 运行SpringBoot的入口main方法
    在这里插入图片描述在这里插入图片描述在这里插入图片描述

SpringBoot Demo 程序解析

  • spring-boot-starter-parent(SpringBoot的父级依赖)配置之后,当前的项目就是SpringBoot项目;

    <!--继承springboot的父级项目依赖,可以简化Maven的配置。
    它用来提供相关的Maven默认依赖,使用它之后,常用的jar包依赖可以省去version配置
    想了解SpringBoot提供了哪些默认jar包的依赖,可查看该父级依赖的pom文件-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.8.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    
    <!-- 
    父级依赖中已经有一种依赖包了,但在我们项目中还是需要再写一遍这个依赖的配置,只不过版本号不需要写了。
    这是因为maven里的依赖是放在dependencyManagement这个标签里,表示这个父级里面已经定义了这个依赖包的基础模板,但是要用这个jar包的话还需要再在我们项目中再重新定义一遍。
    插件依赖的配置同理,插件是在pluginManagement标签里。
     -->
    

在这里插入图片描述

  • 如果不想使用某个默认的依赖版本,可以通过pom.xml文件的属性配置覆盖,比如覆盖Spring版本:

    <properties>
        <spring.version>5.0.0.RELEASE</spring.version>
    </properties>
    
  • 启动类上的@SpringBootApplication注解是SpringBoot项目的核心注解,主要作用是开启Spring自动配置

    SpringBoot四大核心,第一个就是自动配置。要保证其他的类放在启动类的下边,或者和它同级。

  • main方法是一 个标准的Java程序的main方法,主要作用是作为项目启动运行的入口

  • @Controller及@ResponseBody依然是我们之前的SpringMvc , 因为SpringBoot的里面依然是使用我们的SSM等框架

SpringBoot核心配置文件

有两种格式的配置文件:.properties配置文件 .yml文件

  • 配置示例

    #配置服务器端口
    server.port=9800
    #配置应用访问路径
    server.context-path=/springboot-web
    
    server:
    	prot: 9091
    	context-path: /springboot-web
    
  • yml文件

    • yml是种yaml格式的配置文件,采用一定的空格、换行等格式排版进行配置
    • yaml是一种直观的能够被计算机识别的数据序列化格式,容易阅读,yaml类似于xml,但是语法更简洁
    • 值与前面的冒号配置项必须要有一个空格
    • yml后缀也可以使用yaml后缀
  • 多环境配置文件

    #比如配置测试环境
    spring.profiles.active=dev
    application-dev.properties
    
    #比如配置生产环境
    spring.profiles.active=product
    application-product.properties
    

SpringBoot自定义配置

我们可以在SpringBoot的核心配置文件中自定义配置,然后采用如下注解去读取配置的属性值

  • @Value注解 用于逐个读取自定义的配置,比如:

    @Value("${spring.application.name:}")
    private String applicationName;
    
  • @ConfigurationProperties 用于将整个文件映射成一个对象,比如:

    // @Component注解  将该类变成spring的一个组件,这样就可以在其他地方用Autowired自动注入
    @Component
    @ConfigurationProperties(prefix="springBootDemo")
    public class MyConfig {
        private String name;
        public String getName() { return name; }
        public void setName(String name) { this.name = name; }
    }
    

SpringBoot配置项目编码

  1. 第一种方式是使用传统的Spring提供给的字符编码过滤器

    @Bean
    public FilterRegistrationBean filterRegistrationBean() {
        FilterRegistrationBean registrationBean = new FilterRegistrationBean();
        CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter();
        characterEncodingFilter.setForceEncoding(true);
        characterEncodingFilter.setEncoding("UTF-8");
        registrationBean.setFilter(characterEncodingFilter);
        registrationBean.addUrlPatterns("/*");
        return registrationBean;
    }
    /*
    在主类上需要扫描此过滤器,扫描包或者class : basePackageClasses=org.springframework.web.filter.Character
    ★注意:只有当spring.http.encoding.enabled=false配置成false后,过滤器才会起作用
    */
    
  2. 第二种方式是在application.properties中配置字符编码:

    #从springboot1.4.2之后开始新增的一种字符编码设置;
    spring.http.encoding.charset=UTF-8
    spring.http.encoding.enabled=true
    spring.http.encoding.force=true
    

IDEA为项目配置编码格式

在这里插入图片描述

SpringBoot下的SpringMVC

SpringBoot下的SpringMVC和之前的SpringMVC使用是完全一样的:

  • @Controller 即为SpringMVC的注解,处理http请求
  • @RestController 是@Controller和@RequestBody的组合注解,用于返回字符串或json数据
  • @GetMapping 是RequestMapping和Get请求方法的组合
  • @PostMapping = @RequestMapping + RequestMethod.POST
  • @PutMapping、
  • @DeleteMapping

SpringBoot集成MyBatis

  1. 在pom.xml中配置相关jar依赖

    <!-- 加载mybatis整合springboot -->
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>1.3.1</version>
    </dependency>
    <!-- MySQL的jdbc驱动包 -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId> mysql-connector-java</artifactId>
    </dependency>
    
  2. 在SpringBoot的核心配置文件application.properties中配置MyBatis的Mapper.xml文件

    mybatis.mapper-locations=classpath:com/springBootDemo/springboot/mapper/*.xml
    
  3. 在SpringBoot的核心配置文件application.properties中配置数据源

    spring.datasource.username=root
    spring.datasource.password=123456
    spring.datasource.driver-class-name=com.mysql.jdbc.Driver
    spring.datasource.url=jdbc:mysql://localhost:3306/demo_test?useUnicode=true&characterEncoding=utf8&useSSL=false
    
  4. 在MyBatis的Mapper接口中添加@Mapper注解或者在运行的主类上添加@MapperScan("com.springBootDemo.springboot.**.mapper")注解包扫描

用Maven方式创建SpringBoot项目

此方法创建可不连接网络,Meven创建的SpringBoot项目在pom.xml中没有自动写入父级依赖,所以手动加上。
在这里插入图片描述在这里插入图片描述在这里插入图片描述

SpringBoot事务支持

  1. 在入口类中使用注解@EnableTransactionManagement开启事务支持
  2. 在访问数据库的Service方法上添加注解@Transactional即可
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值