[关闭]
@wangzhuanyun 2020-09-29T02:24:57.000000Z 字数 4227 阅读 1905

SpringBoot基础(一)

springboot


SpringBoot简介

Spring Boot是Spring社区发布的一个开源项目,旨在帮助开发者快速并且更简单的构建项目。它使用习惯优于配置的理念让你的项目快速运行起来,使用Spring Boot很容易创建一个独立运行(运行jar,内置Servlet容器,Tomcat、jetty)、准生产级别的基于Spring框架的项目,使用SpringBoot你可以不用或者只需要很少的配置文件。

SpringBoot核心功能



SpringBoot启动类注解

  1. @SpringBootApplication
  2. public class DemoWebApplication {
  3. public static void main(String[] args) {
  4. SpringApplication.run(DemoWebApplication.class, args);
  5. }
  6. }
  7. @SpringBootApplication注解是多个注解的合体,其中最重要的是@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan
  8. @SpringBootConfiguration 继承至@Configuration,其实两种功能一致,都是标注该类为配置类,读取启动类
  9. @EnableAutoConfiguration 这个注解是SpirngBoot自动配置的核心所在,通过此注解,能所有符合自动配置条件的bean的定义加载到spring容器中。
  10. @ComponentScan 该注解会扫描当前包及子包下面被纳入sping容器管理的类。

配置外部容器

去掉pom.xml中默认加载的tomcat,并添加servlet-api

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-web</artifactId>
  4. <!--移除tomcat-->
  5. <exclusions>
  6. <exclusion>
  7. <groupId>org.springframework.boot</groupId>
  8. <artifactId>spring-boot-starter-tomcat</artifactId>
  9. </exclusion>
  10. </exclusions>
  11. </dependency>
  12. <dependency>
  13. <groupId>javax.servlet</groupId>
  14. <artifactId>javax.servlet-api</artifactId>
  15. <version>4.0.1</version>
  16. <scope>provided</scope>
  17. </dependency>

编写代码,覆盖启动类

  1. 使启动类继承 SpringBootServletInitializer 类,并覆盖 configure 方法
  2. @SpringBootApplication
  3. public class SpringbootCSApplication extends SpringBootServletInitializer {
  4. //覆盖configure方法
  5. protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
  6. return builder.sources(SpringbootCS.class);
  7. }
  8. public static void main(String[] args) {
  9. SpringApplication.run(SpringbootCS.class, args);
  10. }
  11. }

打开Project Settings -> Artifacts ->点击+号并选择web applicaction:Exploded ->From Mod....->点击OK

注解@Configuration

标注一个类为配置类

注解@Bean

用@Bean标注方法等价于XML中配置的bean

  1. @Configuration //容器启动时加载
  2. public class AppBootConfig {
  3. //创建bean实例 别名为stu
  4. @Bean(name = "stu")
  5. public Student getStudent(){
  6. Student stu = new Student();
  7. stu.setStudentName("zhangsan");
  8. return stu;
  9. }
  10. }

注解@ConfigurationProperties + @Value

读取properties或yml文件

  1. @Configuration
  2. @ConfigurationProperties("application.yml")
  3. public class AppBootConfig {
  4. @Value("${adminname}") //写入yml中对应的key
  5. private String name ;
  6. @Bean(name = "stu")
  7. public Student getStudent(){
  8. Student stu = new Student();
  9. stu.setStudentName(name);
  10. return stu;
  11. }
  12. }

注解@ComponentScan

扫包,service、controller.....

  1. @SpringBootApplication
  2. @ComponentScan("com.package1,cn.package2")
  3. public class SpringbootcsApplication {
  4. public static void main(String[] args) {
  5. SpringApplication.run(SpringbootcsApplication.class, args);
  6. }
  7. }

注意
@SpringBootApplication注解也包含了@ComponentScan注解,所以在使用中我们也可以通过@SpringBootApplication注解的scanBasePackages属性进行配置

  1. @SpringBootApplication(scanBasePackages = {"com.hz.service","com.hz.controller"})

注意

SpringBoot会默认扫描启动类所在的包及其子包

注解@EnableTransactionManagement

开启事务注解

  1. @SpringBootApplication
  2. @EnableTransactionManagement
  3. public class SpringbootcsApplication {
  4. public static void main(String[] args) {
  5. SpringApplication.run(SpringbootcsApplication.class, args);
  6. }
  7. }

注解@MapperScan

扫描mybatisDao下接口 指定某些类作为Mapper映射文件

@SpringBootApplication(scanBasePackages = {"com.hz.service","com.hz.controller"})
@MapperScan("com.hz.dao")
@EnableTransactionManagement
public class SpringbootcsApplication {

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

}

SpringBoot配置文件——加载顺序

Application属性文件,按优先级排序,位置高的将覆盖位置

  1. 当前项目目录下的一个/config子目录
  2. 当前项目目录
  3. 项目的resources即一个classpath下的/config包
  4. 项目的resources即classpath根路径(root)
    此处输入图片的描述

    如果在不同的目录中存在多个配置文件,它的读取顺序是:
    1、config/application.properties(项目根目录中config目录下)
    2、config/application.yml
    3、application.properties(项目根目录下)
    4、application.yml
    5、resources/config/application.properties(项目resources目录中config目录下)
    6、resources/config/application.yml
    7、resources/application.properties(项目的resources目录下)
    8、resources/application.yml

application.yml

  1. #设置端口号
  2. server:
  3. port: 8088
  4. #数据库连接设置
  5. spring:
  6. datasource:
  7. url: jdbc:mysql://127.0.0.1:3308/sfshop?useUnicode=true&characterEncoding=UTF-8&useSSL=false
  8. username: root
  9. password: root
  10. driverClassName: com.mysql.jdbc.Driver
  11. #配置静态资源
  12. resources:
  13. static-locations: classpath:/templates,classpath:/static/,file:D://
  14. #mybatis设置
  15. mybatis:
  16. type-aliases-package: com.hz.pojo
  17. mapper-locations: classpath:mapper/*.xml
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注