深入学习--SpringBoot

简介: 深入学习--SpringBoot

深入学习--SpringBoot



一、@SpringBootApplication源码


@SpringBootApplication注解是Spring Boot的核心注解,它其实是一个组合注解

@Target(ElementType.TYPE)

@Retention(RetentionPolicy.RUNTIME)

@Documented

@Inherited

@SpringBootConfiguration

@EnableAutoConfiguration

@ComponentScan(excludeFilters = {

@Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),

@Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })

public @interface SpringBootApplication {

       ................

}


1.1 @SpringBootConfiguration--是一个组合注解

@Target(ElementType.TYPE)

@Retention(RetentionPolicy.RUNTIME)

@Documented

@Configuration

public @interface SpringBootConfiguration {


}

小结:在里面我们看到了@Configuration,所以在以后的注解中,我们使用@SpringBootConfiguration来代替@Configuration


1.2 @EnableAutoConfiguration--自动配置


@SuppressWarnings("deprecation")

@Target(ElementType.TYPE)

@Retention(RetentionPolicy.RUNTIME)

@Documented

@Inherited

@AutoConfigurationPackage

@Import(EnableAutoConfigurationImportSelector.class)

public @interface EnableAutoConfiguration {

          ....................


小结:启用自动配置,该注解会使Spring Boot根据项目中依赖的jar包自动配置项目的配置项,我们添加了spring-boot-starter-web的依赖,项目中也就会引入SpringMVC的依赖,Spring Boot就会自动配置tomcatSpringMVC


二、SpringBoot简单配置以及图案配置


2.1 关闭 SpringBoot的自动配置


查看工程中JAR包

spring-boot-autoconfigure-1.5.2.RELEASE.jar里面有很多自动配置的JAR包

例如:我们不想用sole(搜索框架)的自动配置

@SpringBootApplication(exclude= {SolrAutoConfiguration.class})

public class Application {

public static void main(String[] args) {

       SpringApplication.run(Application.class, args);

   }

}


2.2 启动时的图案--Spring》》


让我们来看一张图片:相信大家很熟悉

如何替换呢?

找到网址:

http://patorjk.com/software/taag/#p=display&h=3&v=3&f=4Max&t=itcast%20Spring%20Boot

resource下新建banner.txt-->在网址中输入想要的字符(LOVE)-->复制字符到banner.txt-->重新启动

打印效果:

                 88      dP"Yb  Yb    dP 888888                  

________ ________ 88     dP   Yb  Yb  dP  88__   ________ ________

"""""""" """""""" 88  .o Yb   dP   YbdP   88""   """""""" """"""""

                 88ood8  YbodP     YP    888888      

           

2.3 关闭启动的图案--Spring》》

调用setBanberModel方法

public class Application {

public static void main(String[] args) {

SpringApplication spr=new SpringApplication(Application.class);

spr.setBannerMode(Banner.Mode.OFF);

spr.run(args);

   }

}


三、application.properties文件


 3.1 目录

 3.2 例:配置端口号


在application.properties文件写上修改tomcat的端口为8945

server.port=8945

运行后结果。

访问地址为:

http://localhost:8945/boot


3.3  更多配置(有点多。。上一部分)


# BANNER

banner.charset=UTF-8 # Banner file encoding.

banner.location=classpath:banner.txt # Banner file location.

# LOGGING

logging.file= # Log file name. For instance `myapp.log`

# AOP

spring.aop.auto=true # Add @EnableAspectJAutoProxy.

# Email (MailProperties)

spring.mail.default-encoding=UTF-8 # Default MimeMessage encoding.

spring.mail.host= # SMTP server host. For instance `smtp.example.com`

# SPRING MVC (WebMvcProperties)

spring.mvc.view.prefix= # Spring MVC view prefix.

spring.mvc.view.suffix= # Spring MVC view suffix.

# SPRING SESSION (SessionProperties)

spring.session.hazelcast.flush-mode=on-save # Sessions flush mode.

spring.session.hazelcast.map-name=spring:session:sessions # Name of the map used to store sessions.

# DAO (PersistenceExceptionTranslationAutoConfiguration)

spring.dao.exceptiontranslation.enabled=true # Enable the PersistenceExceptionTranslationPostProcessor.

spring.datasource.name=testdb # Name of the datasource.

spring.datasource.password= # Login password of the database.


四、xml+log4j


    4.1 xml--特殊配置文件

在SpringBoot中基本用不倒配置文件,在特殊情况下,也可以配置

@ImportResource({"classpath:one.xml","classpath:two.xml"})

   4.2 日志


logging.level.org.springframework=DEBUG

logging.level.*=

# Log levels severity mapping.

For instance`logging.level.org.springframework=DEBUG`

目录
相关文章
|
6月前
|
监控 Java 应用服务中间件
微服务——SpringBoot使用归纳——为什么学习Spring Boot
本文主要探讨为什么学习Spring Boot。从Spring官方定位来看,Spring Boot旨在快速启动和运行项目,简化配置与编码。其优点包括:1) 良好的基因,继承了Spring框架的优点;2) 简化编码,通过starter依赖减少手动配置;3) 简化配置,采用Java Config方式替代繁琐的XML配置;4) 简化部署,内嵌Tomcat支持一键式启动;5) 简化监控,提供运行期性能参数获取功能。此外,从未来发展趋势看,微服务架构逐渐成为主流,而Spring Boot作为官方推荐技术,与Spring Cloud配合使用,将成为未来发展的重要方向。
192 0
微服务——SpringBoot使用归纳——为什么学习Spring Boot
|
5月前
|
Java Spring
Spring框架的学习与应用
总的来说,Spring框架是Java开发中的一把强大的工具。通过理解其核心概念,通过实践来学习和掌握,你可以充分利用Spring框架的强大功能,提高你的开发效率和代码质量。
142 20
|
10月前
|
前端开发 Java 开发者
Spring生态学习路径与源码深度探讨
【11月更文挑战第13天】Spring框架作为Java企业级开发中的核心框架,其丰富的生态系统和强大的功能吸引了无数开发者的关注。学习Spring生态不仅仅是掌握Spring Framework本身,更需要深入理解其周边组件和工具,以及源码的底层实现逻辑。本文将从Spring生态的学习路径入手,详细探讨如何系统地学习Spring,并深入解析各个重点的底层实现逻辑。
212 9
|
11月前
|
前端开发 Java 数据库
SpringBoot学习
【10月更文挑战第7天】Spring学习
124 9
|
10月前
|
JavaScript Java 项目管理
Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)
基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。
|
11月前
|
XML Java 数据格式
Spring学习
【10月更文挑战第6天】Spring学习
82 1
|
11月前
|
Java 测试技术 开发者
springboot学习四:Spring Boot profile多环境配置、devtools热部署
这篇文章主要介绍了如何在Spring Boot中进行多环境配置以及如何整合DevTools实现热部署,以提高开发效率。
447 2
|
11月前
|
前端开发 Java 程序员
springboot 学习十五:Spring Boot 优雅的集成Swagger2、Knife4j
这篇文章是关于如何在Spring Boot项目中集成Swagger2和Knife4j来生成和美化API接口文档的详细教程。
1703 1
|
11月前
|
Java API Spring
springboot学习七:Spring Boot2.x 拦截器基础入门&实战项目场景实现
这篇文章是关于Spring Boot 2.x中拦截器的入门教程和实战项目场景实现的详细指南。
187 0
springboot学习七:Spring Boot2.x 拦截器基础入门&实战项目场景实现
|
11月前
|
Java API Spring
springboot学习六:Spring Boot2.x 过滤器基础入门&实战项目场景实现
这篇文章是关于Spring Boot 2.x中过滤器的基础知识和实战项目应用的教程。
300 0
springboot学习六:Spring Boot2.x 过滤器基础入门&实战项目场景实现