springboot 扫描规则
一 如果项目所有类都在application启动类所在目录下或 其子目录下,则可以不用配置@ComponentScan,springboot会自动扫描application启动类所在目录下及其子目录下的注解
二 如果配置了@ComponentScn中的basepackages,那么就要把所有需要扫描的包都配置.这种情况下,@ComponentScan是不会再去扫描当前类所在的包的
@PropertySource
所有的配置都是写在appliaction.properties或application.yml文件里,那么如果不想写在这里面怎么处理呢使用@PropertySource可以解决;
只要使用在能扫描到的地方就可以使用该注解;
从源码可以看出,这个方法是一行一行地读取,然后根据冒号、等于号、空格等进行校验,经过一系列遍历之后获取key和value,而yaml语法是以缩进来辨别的,经过自己调试,这个方法也是不支持yaml文件的读取的
@ImportResource
springboot没有使用以前的spring的xml的配置方法,如果还是要使用spring里面的xml的配置方式怎么办理,使用@ImportResource注解。
该注解只要使用在能扫描到的地方就可以生效
@Bean
@Bean 声明在带参数的方法时,自动在形参前加入@Autowired,形参对象在ioc中存在多个时须在形参手动加入@Qualifiter("beanid")
----------------------------------------------------
springboot集成jsp注意事项:
①需要在pom.xm文件中添加
<!--用于编译jsp -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<!--<scope>provided</scope> 注意,这个scope需要被注释掉-->
</dependency>
②编译不进classes,需要在pom文件中添加该项,制定导入MATA-INF的resources下
<build>
<resources>
<resource>
<directory>src/main/webapps</directory>
<targetPath>META-INF/resources</targetPath>
<includes>
<include>**/*.*</include>
</includes>
</resource>
</resources>
</build>