代码改变世界

关于springboot

2019-08-16 09:42  Lign_King  阅读(162)  评论(0编辑  收藏  举报

1,什么是springboot,

  springboot是spring生态圈的一个轻量级框架,换句话说springboot就是spring,是spring的一个衍生版本
        如果是spring框架,项目中搭建完毕,无法实现任何的代码,也就是说spring没有办法帮助开发人员去连接数据库,对数据库做增删改查,也没有办法自动把shiro集成进来,需要开发人员手动编写xml配置文件,自己进行整合
        springboot其实就是集成好了很多框架的spring,直接根据springboot所提供的标准化编写配置即可,不再需要编写xml配置文件,springboot官方给出的解释就是干掉xml文件,使用Java代码进行编写配置
        通过Java类来代替xml

2,为什么用springboot代替spring

  傻瓜式开发,减少了大量配置,降低了开发人员的标准,低层次的开发人员也可以编写业务逻辑,不需要了解内部运行原理以及框架的集成和整合

3.springboot的hello world
        3.1.@SpringbootApplication
        springboot的运行原理
            作用是实现了自动的配置
            @SpringbootApplication是一个组合注解
                @SpringBootConfiguration:springboot所必须要的基础配置(application.xml)
                @EnableAutoConfiguration:自动加载配置
            @EnableAutoConfiguration任然是一个组合注解
                @AutoConfigurationPackage:通过扫描包的形式自动加载(eg:mybatis的mapper扫描器)
                @Import:导入(在application.xml配置文件中<import />)
                    EnableAutoConfigurationImportSelector:自动加载配置的选择器(根据条件进行自动加载配置)
                    继承了AutoConfigurationImportSelector
                    AutoConfigurationImportSelector类中有一个方法
                        getCandidateConfigurations():根据某个特定的条件获取配置信息
                        loadFactoryNames():根据name的属性值来获取加载器信息
                        是根据了META-INF/spring.factories文件进行加载配置
                        根据factories文件映射到了配置类中
                            MybatisAutoConfiguration.java是经过xml配置文件转换来的,和xml配置文件一样的作用
                            DataSource
                            SqlSessionFactory
                            sqlSessionTemplate

        3.2.添加mybatis的依赖后,再次启动会抛异常
            mybatis框架已经被集成进项目中,但是mybatis最终的目的是操作数据库,mybatis并没有找到数据源的配置信息,所以导致项目报错
            解决问题:配置数据源信息
        3.3.配置数据库
            按照springboot所规定的形式配置数据库
            在官方文档中说明
                可以使用文件进行配置数据源信息(就是springboot的主配置文件,也是以后操作最多的文件)
                properties
                yml
                命名有规范:
                    文件名必须要使用application,否则springboot无法识别
                    application.properties
                    application.yml
                存放位置有规定:
                    官方推荐把配置文件放在resources目录(classpath)-->config文件夹
                    如果config文件夹springboot没有检测到会从resources目录下去找
                    resources:classpath(根目录)
                    resources/config
        3.4.替换和关闭banner
            springboot项目启动的时候,会自动加载spring所提供的banner
            替换banner:
                需要在resources(classpath)目录中创建文件
                banner.txt
            关闭banner:
                SpringApplication springApplication = new SpringApplication(ApplicationRun.class);
                springApplication.setBannerMode(Banner.Mode.OFF);
                springApplication.run(args);

 

面试题:如果区分轻量级和重量级框架?

  主要区别,在项目中轻量级的框架会对自己项目中的代目有很少的侵入,

  例如:hibernate:hql:from user

     mybatis:ssql:select *from user