SpringBoot快速入门

1.sprongboot介绍

        SpringBoot是由Pivotal团队研发的,SpringBoot并不是一门新技术,只是将之前常用的Spring,SpringMVC,data-jpa等常用的框架封装到了一起,帮助你隐藏这些框架的整合细节,实现敏捷开发。

        核心思想: 约定大于配置

例如:

        我们需要搭建一个spring web项目的时候就不需要在去繁琐的配置web.xml,加载spring和spring mvc, 配置数据库连接、配置spring事务, 配置加载配置文件的读取,开启注解等

        有了SpringBoot后,只需要导入xxx-start依赖,写上Controller-service-Mapper代码,启动就行.

        SpringBoot就是一个工具集.

官网:Spring Boot

SpringBoot特点:

  • SpringBoot项目不需要模板化的配置。

  • SpringBoot中整合第三方框架时,只需要导入相应的starter依赖包,就自动整合了。约定大于配置。

  • SpringBoot默认只有一个.properties的配置文件(现在yml形式比较常用),不推荐使用xml,后期会采用.java的文件去编写配置信息。

  • SpringBoot工程在部署时,采用的是jar包的方式,内部自动依赖Tomcat容器,提供了多环境的配置。

  • 后期要学习的微服务框架SpringCloud需要建立在SpringBoot的基础上。

2.快速入门

2.1.选择构建项目的类型

 2.2.指定springboot版本和需要的依赖

 ps: 2.7.13版本创建完项目会报错alimaven找不到依赖,手动将pom文件中版本改成2.7.2

<parent>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-parent</artifactId>
 <version>2.7.2</version>
 <relativePath/> 
</parent>

2.3.导入依赖[会自动导入的]

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

 <dependency>
     <groupId>org.projectlombok</groupId>
     <artifactId>lombok</artifactId>
     <optional>true</optional>
 </dependency>
 <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-test</artifactId>
     <scope>test</scope>
 </dependency>

2.4.编写controller

@RestController
public class Demo01TestController {

    @GetMapping("/test")
    public String test(){
 return "Hello SpringBoot!";
    }
}

2.5.测试

主类点击启动类启动 [注意: 启动类要跟其他包平级才行]

 

 启动成功效果和浏览器显示效果

3.springboot的目录结构

3.1.pom.xml文件

  • 指定了一个父工程: 指定当前工程为SpringBoot,帮助我们声明了starter依赖的版本。

  • 项目的元数据:包名,项目名,版本号。

  • 指定了properties信息:指定了java的版本为1.8

  • 导入依赖:默认情况导入spring-boot-starter,spring-boot-starter-test

  • 插件:spring-boot-maven-plugin

3.2.src目录

-src
  -main	  
    -java
      -包名
 启动类.java			# 需要将controller类,放在启动类的子包中或者同级包下,否则需要使用@ComponentScan 注解,并指定扫描的包即可
    -resources
      -static				  # 存放静态资源的,js,css,html
      -templates			  # 存储模板页面的,Thymeleaf,jsp,freemarker
      application.properties  # SpringBoot提供的配置文件,后缀支持2种:1.properties 2.yml(推荐)
  -test   				      # 只是为了测试用的

4.springboot常用注解[重点]

4.1.@Configuration和@Bean

  • 之前使用SSM去开发时,在xml文件中编写bean标签,但是SpringBoot不推荐使用xml文件。

  • @Configuration注解相当于beans标签

  • @Bean注解相当于bean标签

  • id=“方法名 | 注解中的name属性(优先级更高)”

  • class=“方法的返回结果”

@AllArgsConstructor
@NoArgsConstructor
@Data
@ToString
public class User {

    private int id;
    private String username;
    private String password;   
}
//===================================================
@Configuration   // 代表当前类是一个配置类
public class UserConfig {  
    @Bean      // 构建一个实例,放到spring容器中
    public User user(){
      return new User(1,"张三丰","123456");
    }    
    /*
    <beans ....>     @Configuration
 <bean id="user1" class="com.qf.firstspringboot.entity.User" />
    </beans>
     */
}
// ==================================================
// 就可以从容器中获得该对象
@RestController
public class TestController {

    @Autowired
    private User user;

    @GetMapping("/bean")
    public User testBean(){
 		return user;
    }
}

 

 4.2.@SpringBootApplication

@SpringBootApplication就是一个组合注解:

  • @SpringBootConfiguration就是@Configuration注解,代表启动类就是一个配置类。

  • @EnableAutoConfiguration帮你实现自动装配的,SpringBoot工程启动时,运行一个SpringFactoriesLoader的类,加载META-INF/spring.factories配置类(已经开启的),通过SpringFactoriesLoader中的load方法,以for循环的方式,一个一个加载。

    • 好处:无需编写大量的整合配置信息,只需要按照SpringBoot提供好了约定去整合即可。

    • 坏处:如果说你导入了一个starter依赖,那么你就需要填写他必要的配置信息。

    • 手动关闭自动装配指定内容:@SpringBootApplication(exclude = QuartzAutoConfiguration.class)

  • @ComponentScan就相当于<context:component-scan basePackage=“包名” />,帮助扫描注解的

 5.SpringBoot常用配置

5.1.配置文件格式

SpringBoot的配置文件,文件名必须是application,格式支持propertiesyml

更推荐使用yml文件格式:

  1. yml文件,会根据换行和缩进帮助咱们管理配置文件所在位置

  2. yml文件,相比properties更轻量级一些

  3. K: V 表示一对键值对(冒号: 后一定有一个空格)

  4. 以空格的缩进来控制层级关系;只要是左对齐的都是属于一个层级的数据

  5. 属性和值大小写敏感.

yml文件的劣势:

  1. 严格遵循换行和缩进

  2. 在填写value时,一定要在: 后面跟上空格

配置文件的作用

  • 修改SpringBoot的配置的默认值:

    比如默认启动的Tomcat的端口是8080,可以修改为8081

  • 配置文件的位置

        一般默认都是放在resources/下  

 5.2.多环境配置

实际开发中,有三种环境:

1.开发环境-程序员日常开发所需

2.测试环境-项目的集成测试

3.生产环境-最终项目部署的环境,真实环境

SpringBoot支持多环境的配置。只需要根据环境需要,编写多个配置文件,通过配置属性选择使用哪个环境

使用步骤:

1.多环境的配置文件命名:application-环境名.yml

2.在总文件application.yml中通过属性:spring profiles active 环境名

ps:也可在部署工程时,通过 java -jar jar文件 --spring.profiles.active=环境

5.3.获取配置文件信息

解释: 将yml配置的值,赋值给对应的类

方案:

  • 方案一: @ConfigurationProperties [开发中不常用, 源码中常用]

  • 方案二: @Value [比较简单的, 常用]

 方案一: @ConfigurationProperties

# 示例
password:
  slat: sfgagsdgjiajg
  count: 666
@Data //get和set
@Component //表示是spring中的类
@ConfigurationProperties(prefix = "password") //配置属性, password(yml中的前缀)
public class PasswordProperties {

    private String slat;
    private int count;
}
@RestController
public class Demo03TestReadConfigController {
    @Resource
    PasswordProperties passwordProperties;

    @RequestMapping("/value6")
    public void test6(){
        System.out.println(passwordProperties.getSlat());
        System.out.println(passwordProperties.getCount());
    }
}

 方案二: @Value

// yml配置文件内容是一样的
// 不一样的是Java类中使用的注解
@RestController
public class Demo03TestReadConfigController {

    @Value("${password.slat}")
    private String slat; //加盐

    @Value("${password.count}")
    private Integer count; //数量

    //测试
    @RequestMapping("/value")
    public void test3(){
        System.out.println(slat);
        System.out.println(count);
    }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值