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的出现,省去了程序员复杂的工作,可以说是我们程序员的福音啊。
- SpringBoot入门总结
- springboot慕课网2小时入门课程总结
- SpringBoot入门
- springboot入门
- springboot 入门
- springboot 入门
- SpringBoot入门
- SpringBoot入门
- SpringBoot入门
- Springboot入门
- springboot入门
- SpringBoot入门
- SpringBOOT入门
- SpringBoot 入门
- springboot入门
- SpringBoot入门
- SpringBoot入门
- SpringBoot入门
- Linux学习笔记1
- wordpress “xx is not readable”
- eclipse中添加Eclipse Marketplace Client
- dlq
- 前端通过JS将从后端接口返回的大数求和的简单实现
- SpringBoot入门总结
- 《深度学习:21天实战Caffe》第一天
- Kaggle入门
- C语言(如何不使用第三个变量达到交换两个变量值的目的)
- LeetCode 66. Plus One
- Google Guava 缓存实现接口的限流
- setContentView中的源码探索(未修订)
- SpringMVC学习笔记(二)-----配置文件
- 中东美食!