Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
springboot=spring+springmvc
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XoJqLthT-1569942632777)(E:\framework\springboot\笔记\assets\1561437562772.png)]
server: 层级之间有一个tab键的间隔 port: 8989 属性名和值之间有一个空格的间隔 context-path: /springboot 默认配置文件没有内容 默认springboot端口号为8080 默认没有项目名默认不支持jsp为视图层模板,[Thymeleaf]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sb1E8BjO-1569942632778)(E:\framework\springboot\笔记\assets\1561437241988.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3DGUXdmw-1569942632779)(E:\framework\springboot\笔记\assets\1561437358931.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1Zoi26Es-1569942632780)(E:\framework\springboot\笔记\assets\1561437468672.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a3s1a0DF-1569942632783)(E:\framework\springboot\笔记\assets\1561456234905.png)]
1.配置文件中声明相关属性
application.yml server.port=8989 server.context-path=/springboot jdbc.password=root jdbc.url=jdbc:mysql://localhost:3306/springboot jdbc.driver=com.mysql.jdbc.Driver jdbc.username=root2.创建属性配置类并对属性进行注入
@ConfigurationProperties(prefix = "jdbc") //读取application.yml的属性,并且为当前属性类添加前缀 public class JDBCProperties { private String username; private String password; private String url; private String driver; }3.创建配置类引入属性配置类
@EnableConfigurationProperties(value = JDBCProperties.class)//获取配置文件类 @Configuration public class JDBCConf { @Autowired JDBCProperties jdbcProperties; @Bean public DruidDataSource getDruidDataSource(){ DruidDataSource druidDataSource = new DruidDataSource(); druidDataSource.setPassword(jdbcProperties.getPassword()); druidDataSource.setUsername(jdbcProperties.getUsername()); druidDataSource.setUrl(jdbcProperties.getUrl()); druidDataSource.setDriverClassName(jdbcProperties.getDriver()); return druidDataSource; } }4.配置文件提示的jar
<!--此jar包可以让配置文件有提示--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency>实现ImportSelector接口和其中方法
@Override public String[] selectImports(AnnotationMetadata importingClassMetadata) { // 逻辑代码 String[] strs={"com.baizhi.conf.Blue","com.baizhi.conf.Red"}; return strs; }通过selectImports()方法获取到类的全限定名,以数组形式返回,然后加入到spring的容器中.
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QvabhFes-1569942632785)(E:\framework\springboot\笔记\assets\1561520713923.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VfP4NeiG-1569942632787)(E:\framework\springboot\笔记\assets\1561520940509.png)]
加载类路径下的META-info/spring.factorys从而获取到相关的自动配置类信息
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NFRQBeP9-1569942632787)(E:\framework\springboot\笔记\assets\1561521107957.png)]
以org.springframework.boot.autoconfigure.EnableAutoConfiguration为键进行取值
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1l2bVyeZ-1569942632790)(E:\framework\springboot\笔记\assets\1561521286949.png)]
自动配置类是springboot默认提供的自动配置.
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ org.springframework.boot.autoconfigure.admin.SpringApplicationAdminJmxAutoConfiguration,\ org.springframework.boot.autoconfigure.aop.AopAutoConfiguration,\ org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration,\ org.springframework.boot.autoconfigure.batch.BatchAutoConfiguration,\ org.springframework.boot.autoconfigure.cache.CacheAutoConfiguration,\ org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfiguration,\ org.springframework.boot.autoconfigure.cloud.CloudAutoConfiguration,\ org.springframework.boot.autoconfigure.context.ConfigurationPropertiesAutoConfiguration,\ org.springframework.boot.autoconfigure.context.MessageSourceAutoConfiguration,\ org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration,\ org.springframework.boot.autoconfigure.couchbase.CouchbaseAutoConfiguration,\ org.springframework.boot.autoconfigure.dao.PersistenceExceptionTranslationAutoConfiguration,\ org.springframework.boot.autoconfigure.data.cassandra.CassandraDataAutoConfiguration,\ org.springframework.boot.autoconfigure.data.cassandra.CassandraRepositoriesAutoConfiguration,\ org.springframework.boot.autoconfigure.data.couchbase.CouchbaseDataAutoConfiguration,\ org.springframework.boot.autoconfigure.data.couchbase.CouchbaseRepositoriesAutoConfiguration,\ org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchAutoConfiguration,\ org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataAutoConfiguration,\ org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchRepositoriesAutoConfiguration,\ org.springframework.boot.autoconfigure.data.jpa.JpaRepositoriesAutoConfiguration,\ org.springframework.boot.autoconfigure.data.ldap.LdapDataAutoConfiguration,\ org.springframework.boot.autoconfigure.data.ldap.LdapRepositoriesAutoConfiguration,\ org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration,\ org.springframework.boot.autoconfigure.data.mongo.MongoRepositoriesAutoConfiguration,\ org.springframework.boot.autoconfigure.data.neo4j.Neo4jDataAutoConfiguration,\ org.springframework.boot.autoconfigure.data.neo4j.Neo4jRepositoriesAutoConfiguration,\ org.springframework.boot.autoconfigure.data.solr.SolrRepositoriesAutoConfiguration,\ org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration,\ org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration,\ org.springframework.boot.autoconfigure.data.rest.RepositoryRestMvcAutoConfiguration,\ org.springframework.boot.autoconfigure.data.web.SpringDataWebAutoConfiguration,\ org.springframework.boot.autoconfigure.elasticsearch.jest.JestAutoConfiguration,\ org.springframework.boot.autoconfigure.freemarker.FreeMarkerAutoConfiguration,\ org.springframework.boot.autoconfigure.gson.GsonAutoConfiguration,\ org.springframework.boot.autoconfigure.h2.H2ConsoleAutoConfiguration,\ org.springframework.boot.autoconfigure.hateoas.HypermediaAutoConfiguration,\ org.springframework.boot.autoconfigure.hazelcast.HazelcastAutoConfiguration,\ org.springframework.boot.autoconfigure.hazelcast.HazelcastJpaDependencyAutoConfiguration,\ org.springframework.boot.autoconfigure.info.ProjectInfoAutoConfiguration,\ org.springframework.boot.autoconfigure.integration.IntegrationAutoConfiguration,\ org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration,\ org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,\ org.springframework.boot.autoconfigure.jdbc.JdbcTemplateAutoConfiguration,\ org.springframework.boot.autoconfigure.jdbc.JndiDataSourceAutoConfiguration,\ org.springframework.boot.autoconfigure.jdbc.XADataSourceAutoConfiguration,\ org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration,\ org.springframework.boot.autoconfigure.jms.JmsAutoConfiguration,\ org.springframework.boot.autoconfigure.jmx.JmxAutoConfiguration,\ org.springframework.boot.autoconfigure.jms.JndiConnectionFactoryAutoConfiguration,\ org.springframework.boot.autoconfigure.jms.activemq.ActiveMQAutoConfiguration,\ org.springframework.boot.autoconfigure.jms.artemis.ArtemisAutoConfiguration,\ org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration,\ org.springframework.boot.autoconfigure.groovy.template.GroovyTemplateAutoConfiguration,\ org.springframework.boot.autoconfigure.jersey.JerseyAutoConfiguration,\ org.springframework.boot.autoconfigure.jooq.JooqAutoConfiguration,\ org.springframework.boot.autoconfigure.kafka.KafkaAutoConfiguration,\ org.springframework.boot.autoconfigure.ldap.embedded.EmbeddedLdapAutoConfiguration,\ org.springframework.boot.autoconfigure.ldap.LdapAutoConfiguration,\ org.springframework.boot.autoconfigure.liquibase.LiquibaseAutoConfiguration,\ org.springframework.boot.autoconfigure.mail.MailSenderAutoConfiguration,\ org.springframework.boot.autoconfigure.mail.MailSenderValidatorAutoConfiguration,\ org.springframework.boot.autoconfigure.mobile.DeviceResolverAutoConfiguration,\ org.springframework.boot.autoconfigure.mobile.DeviceDelegatingViewResolverAutoConfiguration,\ org.springframework.boot.autoconfigure.mobile.SitePreferenceAutoConfiguration,\ org.springframework.boot.autoconfigure.mongo.embedded.EmbeddedMongoAutoConfiguration,\ org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration,\ org.springframework.boot.autoconfigure.mustache.MustacheAutoConfiguration,\ org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration,\ org.springframework.boot.autoconfigure.reactor.ReactorAutoConfiguration,\ org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration,\ org.springframework.boot.autoconfigure.security.SecurityFilterAutoConfiguration,\ org.springframework.boot.autoconfigure.security.FallbackWebSecurityAutoConfiguration,\ org.springframework.boot.autoconfigure.security.oauth2.OAuth2AutoConfiguration,\ org.springframework.boot.autoconfigure.sendgrid.SendGridAutoConfiguration,\ org.springframework.boot.autoconfigure.session.SessionAutoConfiguration,\ org.springframework.boot.autoconfigure.social.SocialWebAutoConfiguration,\ org.springframework.boot.autoconfigure.social.FacebookAutoConfiguration,\ org.springframework.boot.autoconfigure.social.LinkedInAutoConfiguration,\ org.springframework.boot.autoconfigure.social.TwitterAutoConfiguration,\ org.springframework.boot.autoconfigure.solr.SolrAutoConfiguration,\ org.springframework.boot.autoconfigure.thymeleaf.ThymeleafAutoConfiguration,\ org.springframework.boot.autoconfigure.transaction.TransactionAutoConfiguration,\ org.springframework.boot.autoconfigure.transaction.jta.JtaAutoConfiguration,\ org.springframework.boot.autoconfigure.validation.ValidationAutoConfiguration,\ org.springframework.boot.autoconfigure.web.DispatcherServletAutoConfiguration,\ org.springframework.boot.autoconfigure.web.EmbeddedServletContainerAutoConfiguration,\ org.springframework.boot.autoconfigure.web.ErrorMvcAutoConfiguration,\ org.springframework.boot.autoconfigure.web.HttpEncodingAutoConfiguration,\ org.springframework.boot.autoconfigure.web.HttpMessageConvertersAutoConfiguration,\ org.springframework.boot.autoconfigure.web.MultipartAutoConfiguration,\ org.springframework.boot.autoconfigure.web.ServerPropertiesAutoConfiguration,\ org.springframework.boot.autoconfigure.web.WebClientAutoConfiguration,\ org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration,\ org.springframework.boot.autoconfigure.websocket.WebSocketAutoConfiguration,\ org.springframework.boot.autoconfigure.websocket.WebSocketMessagingAutoConfiguration,\ org.springframework.boot.autoconfigure.webservices.WebServicesAutoConfiguration以WebMvcAutoConfiguration为例在该类中已经预先配置了相关的一些组件,比如视图解析器,但是默认的视图解析器没有属性值,如果想设置属性值则需通过配置文件进行属性注入方可完成自动配置
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Yq9QM24o-1569942632791)(E:\framework\springboot\笔记\assets\1561522315194.png)]
属性配置类一般一properties结尾,每一个自动配置类都会有一个对应的properties
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kgMwEhYn-1569942632793)(E:\framework\springboot\笔记\assets\1561522386001.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WWJtmqQn-1569942632794)(E:\framework\springboot\笔记\assets\1561539084795.png)]
创建三个配置文件 application为主配置文件,两个小配置文件分别为application-xxx.yml,如果在主配文件中想切换小配置文件采用以下配置
spring: profiles: active: product[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KHcrblWo-1569942632796)(E:\framework\springboot\笔记\assets\1561537178849.png)]
<!--热部署依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <version>1.5.8.RELEASE</version> </dependency> 注意:只支持jsp的热部署,如果想实现后台代码的热部署,需要进行ide(java的集成开发环境)的进行配置[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eNP6bwAA-1569942632797)(E:\framework\springboot\笔记\assets\1561537662596.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ht2rqpkL-1569942632797)(E:\framework\springboot\笔记\assets\1561537823192.png)]
