zoukankan      html  css  js  c++  java
  • SpringBoot基础梳理

    1.入口类和@SpringBootApplication注解:

    SpringBoot通常有一个名为*Application的入口类,入口类里面有main方法,我们可以通过启动main方法启动springboot应用

    @SpringBootApplication是SpringBoot的核心注解,他是一个组合注解,源码如下:

     1 @Target({ ElementType.TYPE })
     2 @Retention(RetentionPolicy.RUNTIME)
     3 @Documented
     4 @Inherited
     5 @SpringBootConfiguration
     6 @EnableAutoConfiguration
     7 @ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = { TypeExcludeFilter.class }) })
     8 public @interface SpringBootApplication {
     9     Class<?>[] exclude() default {};
    10 
    11     String[] excludeName() default {};
    12 
    13     @AliasFor(annotation = ComponentScan.class, attribute = "basePackages")
    14     String[] scanBasePackages() default {};
    15 
    16     @AliasFor(annotation = ComponentScan.class, attribute = "basePackageClasses")
    17     Class<?>[] scanBasePackageClasses() default {};
    18 }

    如果我们不使用@SpringBootApplication,我们可以直接在入口类上使用

    @SpringBootConfiguration
    @EnableAutoConfiguration
    @ComponentScan

    其中@EnableAutoConfiguration 是让Springboot根据类路劲中的jar包依赖为当前项目进行自动配置

    例如:我们添加了spring-boot-starter-web依赖后,会自动添加Tomcat和SpeingMVC的依赖,那么Spring Boot会对Tomcat和SpringMVC进行自动配置

    2.使用xml配置Springboot

    我们可以通过@ImportResource来加载xml配置

    例如:

    @ImportResource("classpath:some-context.xml")

    3.基于安全的配置类型

    Springboot可以通过@ConfigurationProperties将properties和一个Bean及其属性关联,从而实现安全的配置

    例如:

     1 @Component
     2 @ConfigurationProperties(prefix="author")//通过@ConfigurationProperties加载指定的properties文件内容
     3 //通过prefix属性指定properties的配置前缀,通过location指定properties文件的位置,例如:
     4 //@ConfigurationProperties(prefix="author",locations="classpath:config/author.properties")  本例不需要配置location
     5 public class AuthorSettings {
     6     private String name;
     7     private Long age;
     8     public String getName() {
     9         return name;
    10     }
    11     public void setName(String name) {
    12         this.name = name;
    13     }
    14     public Long getAge() {
    15         return age;
    16     }
    17     public void setAge(Long age) {
    18         this.age = age;
    19     }
    20 }

    配置文件如下

    author.name=xmz
    author.age=23







  • 相关阅读:
    数据结构——快速排序
    设计模式——代理模式(静态代理和JDK、CGLib动态代理)
    Java多线程系列——信号量:Semaphore
    Java多线程系列——线程阻塞工具类LockSupport
    Java多线程系列——过期的suspend()挂起、resume()继续执行线程
    Java多线程系列——深入重入锁ReentrantLock
    JVM——深入分析对象的内存布局
    【Git】The authenticity of host '192.168.1.1 (192.168.1.1)' can't be established.
    【linux】CentOS: Sudo: unable to initialize policy plugin
    【Git】.git/FETCH_HEAD: Permission denied 的解决方法
  • 原文地址:https://www.cnblogs.com/xmzJava/p/7260233.html
Copyright © 2011-2022 走看看