SpringBoot入门总结

来源:互联网 发布:莫扎特人格问题 知乎 编辑:程序博客网 时间:2024/05/21 03:18

前言

通过对springboot的研究,了解了springboot的运作流程,以及相关的配置方式。从而了解springboot的初级使用。总结一些springboot的知识,留作备忘录。

springboot的理念

springboot是spring配置由xml配置向注解配置以及java代码方式配置的升级,springboot的理念是”约定胜于配置”,这句话让笔者想起了淘宝的webx框架(这个框架很不好用)。当然spring的约定还是挺好理解的。
通过springboot我们可以创建独立运行的jar包,springboot中内置了,tomcat容器的核心。通过springboot我们也可以创建微服务。

springboot的java配置方式

一个java类代表一个配置文件,一个方法可以配置一个bean,成员变量可以引入其他的bean和基本配置项(比如jdbc常量)。
核心注解:
@Configuration 作用于类上,代表这是一个配置文件
@Bean 作用于方法上,相当于xml文件中的bean标签
@ConponentScan 包扫描,作用于类上,配置要扫描的包路径
@PropertySource,引入properties文件,可以引入数据库的key-value值
@ImportResource 引入其他的xml文件,实现xml与注解的混用
@Value 作用于成员变量,引入properties文件的值。

package cn.itcast.springboot.javaconfig;import javax.sql.DataSource;import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.Configuration;import org.springframework.context.annotation.PropertySource;import com.jolbox.bonecp.BoneCPDataSource;@Configuration// 通过该注解来表明该类是一个Spring的配置,相当于一个xml文件@ComponentScan(basePackages = "cn.keyi.springboot.javaconfig")// 配置扫描包@PropertySource(value = { "classpath:jdbc.properties" }, ignoreResourceNotFound = true)public class SpringConfig {    @Bean    // 通过该注解来表明是一个Bean对象,相当于xml中的<bean>    public UserDAO getUserDAO() {        return new UserDAO(); // 直接new对象做演示    }    @Value("${jdbc.url}")    private String jdbcUrl;    @Value("${jdbc.driverClassName}")    private String jdbcDriverClassName;    @Value("${jdbc.username}")    private String jdbcUsername;    @Value("${jdbc.password}")    private String jdbcPassword;    @Bean(destroyMethod = "close")    public DataSource dataSource() {        BoneCPDataSource boneCPDataSource = new BoneCPDataSource();        // 数据库驱动        boneCPDataSource.setDriverClass(jdbcDriverClassName);        // 相应驱动的jdbcUrl        boneCPDataSource.setJdbcUrl(jdbcUrl);        // 数据库的用户名        boneCPDataSource.setUsername(jdbcUsername);        // 数据库的密码        boneCPDataSource.setPassword(jdbcUsername);        // 检查数据库连接池中空闲连接的间隔时间,单位是分,默认值:240,如果要取消则设置为0        boneCPDataSource.setIdleConnectionTestPeriodInMinutes(60);        // 连接池中未使用的链接最大存活时间,单位是分,默认值:60,如果要永远存活设置为0        boneCPDataSource.setIdleMaxAgeInMinutes(30);        // 每个分区最大的连接数        boneCPDataSource.setMaxConnectionsPerPartition(100);        // 每个分区最小的连接数        boneCPDataSource.setMinConnectionsPerPartition(5);        return boneCPDataSource;    }}

springBoot的启动方式

springboot的入口时一个习惯命名为:xxxApplication的java文件的main函数。通过运行main函数,启动springboot的容器。

@SpringBootApplication(exclude = { RedisAutoConfiguration.class })public class HelloApplication {    public static void main(String[] args) {        SpringApplication.run(HelloApplication.class, args);    }}

通过这种方式,就可以实现springboot应用的启动。

自定义Banner

启动时,我们可以看到形如springboot的启动动画,当然我们也可以自定义我们的启动动画,通过网上的某些工具,可以生成我们想要的文字。
定义一个名称为,bannner.txt的文件放入classpath的根目录下,重启应用,就可以了。

springboot的pom文件配置。

当然,这是maven项目的配置,也是一切的根本,一个项目,肯定要有依赖和jar包。
需要配置父pom

springboot的父pom和依赖

<parent>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-parent</artifactId>        <version>1.5.2.RELEASE</version></parent><dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-web</artifactId></dependency>

springboot和其他框架的继承

springboot继承了很多其他框架的继承,当然我们也可以手动配置。
springboot有个start pom通过引入提供的其他的框架的pom依赖,就可以实现spring的技术配置。这样的方式,springboot项目就支持相应的框架集成。
这里涉及到一个全局配置文件。application.properties
这个文件,用于配置容器的拦截规则、端口号、日志、静态资源路径、springmvc的解析器的配置等等。

server.port=8088server.servlet-path=/spring.resources.static-locations=classpath:/public/logging.level.org.springframework=DEBUG

总结:springboot框架,由传统的xml配置方式,向注解和自动配置进化的结果,通过spring框架去除复杂的配置,复杂的部署流程,第三方的集成难度大的问题,springboot的出现,省去了程序员复杂的工作,可以说是我们程序员的福音啊。