最近在做一个spring 的项目,然后想把spring的项目转换成boot项目,其中有问题,也有体会。
体会最好的是,boot把所有的可继承的都变成了参数配置,正所谓约定优于配置。在这里我觉得很好的提现了,
比如配置freemarker,我只要集成boot-freemarker的jar包,然后里面的jar包中有个properties类,我只要按照类里面的参数在根目录下的application.propertie或者是application.yml配置上去就可以使用了,而且简单方便,不像之前的,还要写xml,xml里面有几百行都是,而且理解起来也比较麻烦。boot下来就配置几个参数就行了,而且你引入boot-freemarker的jar包会自动把关联的jar包都引入过来pom的容量也变小了。
spring boot还自带启动容器,默认是tomcat,只要你写一个application类配置上注解@SpringBootApplication然后写上main方法,运行就可以直接启动,如果你想配置一下这个容器,只要在application.propertie或者是application.yml里面写上一些参数就行,比如说你想改端口,需要写的参数是server.port=8080这样端口就改成了8080
spring boot中还存在好多没有集成jar,比如说shiro,所以这个时候你就必须自己写配置文件来进行配置,第一种是写个配置类,把所需要的参数卸载配置类里面,加入配置标签@Configuration,系统启动的时候会默认加载,第二种是像上面那种配置,你就必须写一个properties类接收application.propertie或者是application.yml配置的参数,你必须有一个定义,比如说参数名的起始必须加spring.shiro,这样你在properties中就可以指定,起始参数名为spring.shiro是需要读取的。@ConfigurationProperties(prefix = "spring.shiro"),之后在写一个配置类,引入properties类,进行配置@EnableConfigurationProperties(Properties.class),这样就可以动态进行参数配置了
我集成freemarker的时候
1.可以指定文件路径,也可以不指定,因为freemarker有默认的路径
默认的路径"classpath:/templates/" 默认的后缀名:.ftl
静态资源存放位置:"classpath:/META-INF/resources/", "classpath:/resources/",
"classpath:/static/", "classpath:/public/"
上面的那些参数,网上有都有,你可以自己找找,也可以问我
还有一个yml和properties的配置样式是不一样的,一个是
yml是这样配置的
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/xxx
记住像 type:,driver-class-name:,url:后边打个空格
properties是
spring.datasource.type= com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=mysql://localhost:3306/xxx
这个等号两边紧挨着就行
里面还有两个问题
1.freemarker 中没有配置freemarkerVariables的地方,这个怎么解决,我要是单独写配置类,我肯定会的
2.我配置了一个spring的cache用的是ehcache,然后shiro也想用ehcache怎么弄,我在写配置的时候不知道怎么集成