springboot笔记

springboot笔记,第1张

springboot笔记

        springboot是可以实现轻松创建独立的、生产级的基于Spring的应用程序,开发人员只需要关注运行。Spring平台和第三方库进行了一系列的约定(约定大于配置),这样就可以用最少的时间完成更多的功能。大多数Spring Boot应用程序需要很少的Spring配置(0配置)。

简介

        SpringBoot已成为当今最流行的微服务开发框架,如何使用SpringBoot快速开始Web微服务开发的指南,我们将使创建一个可运行的包含内嵌Web容器(默认使用的是Tomcat的可运行jar包)。传统的Spring应用程序需要配置大量的XML配置文件才能运行,而使用SpringBoot只需极少的配置,就可以获得一个正常运行的Spring应用程序,而这些配置使用的都是注解形式,不需要再配置XML文件。

        在SpringBoot出现以前项目的开发过程中需要大量的配置文件及配置信息,随着Spring3、Spring4的出现,约定大于配置逐渐在开发者圈达成了共识,这时候看到的代码中,注解的方式逐渐取代的配置形式。但是基于maven的Project中pom.xml文件中,需要大量引入各种形式的jar包,对于开发者来说也是一件极其可怕的事情。所以SpringBoot应运而生。

        SpringBoot并不是一个全新的事物,也不是对Spring取而代之,而是Spring框架的一个封装,就像Mybatis封装jdbc、SpringMVC封装Servlet一样,Spring可以完成的功能,SpringBoot都可以完成。目前流行的微服务及分布式系统,SpringBoot就是一个非常好的微服务开发框架,你可以使用它快速搭建一套微服务系统。也可以利用SpringBoot+SpringCloud搭建分布式的云应用系统。

常用注解 1、@ComponentScan

        负责扫描@SpringBootApplication所在的包路径,把实现类交由IOC负责管理对象的生命周期。相当于

        @ComponentScan(basePackages={"路径1","路径2"})

        @ComponentScan(basePackages="路径")

2、@ComponentScans

        同时扫描多个包路径,只需要配置新的路径,默认扫描路径不会失效。

3、@Bean

        控制反转,修饰在方法之上,明确的指示产生一个bean的方法,并且交给spring容器管理

 

 

4、@Configuration

        用于定义配置类,可替换xml配置文件,修饰@Configuration类内部包含有一个或多个被@Bean注解的方法,这些方法将会被AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext类进行扫描,并用于构建Bean定义,初始化Spring容器。(实例第三方依赖)

5、@EnableAutoConfiguration

        spring-boot-autoconfigure.jar

                meta-INF

                        spring.factiores         SPI

                                ...(WebMvcAutoConfiguration)包含拦截实例化DispatcherServlet

                spring-boot-starter-web

6、@SpringBootApplication
@SpringBootApplication=@SpringBootConfiguration+@EnableautoConfiguration+@ComponentSacn
//@SpringBootConfiguration
//实例第三方对象
//@ComponentScan
//扫描并实例自己的对象
//@EnableautoConfiguration
//启动阶段装载热插拔,匹配对应的autoConfiguration实现约定
配置文件

        springboot与第三方进行约定(默认配置项)。

        为了修改默认设置

1、配置分类

        properties        yml

区别:

        1、yml层级用回车缩进表示,格式更清楚。properties为键值对,层级用.

        2、yml优先级高,properties优先级低,后读取的内容会覆盖先读取的yml

2、名称分类

application.yml、bootstrap.yml

区别

        1、bootstrap只适用于Spring cloud环境

        2、bootstrap优先级要比application高

        3、bootstrap读取的内容不允许被覆盖

3、多环境开发

        application.yml默认配置文件,编写公共配置项。

        spring:
            profiles:
                active: dev/test/prod

        application-{profiles}.yml环境文件        当前环境配置文件

spring-boot-starter

        1、整合当前技术完成对于以来的简化

        2、提供默认约定(约定大于配置)

内部,名字在后边

        spring-boot-starter-web

        spring-boot-starter-aop

        spring-bot-starter-security

@Configuration
public class SpringSecurityConfiguration extends WebSecurityConfigurerAdapter {

    @Bean
    public PasswordEncoder passwordEncoder(){
        return new BCryptPasswordEncoder();
    }

    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
//        System.out.println(passwordEncoder().encode("123456"));
//        a$I.rPzdrmjHjj3ztKz1lwmukXmu.wpUHaVeKRrHs/0xQc.opFccFr2
//        System.out.println(passwordEncoder().encode("123456"));
//        a$HAAQzM7tUbDBzRqk.mu6/Om9SNmxc7WolwXqcowEcsDcNXL.MpF86

        auth.inMemoryAuthentication()
                .withUser("admin").password("a$I.rPzdrmjHjj3ztKz1lwmukXmu.wpUHaVeKRrHs/0xQc.opFccFr2").roles("ADMIN")
                .and()
                .withUser("guest").password("a$HAAQzM7tUbDBzRqk.mu6/Om9SNmxc7WolwXqcowEcsDcNXL.MpF86").roles("USER");
    }
}
外部,名字在前边

        mybatis-spring-boot-starter

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5708600.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-18
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存