springboot2.0 是包含并基于spring 5 的,而且M7相对于M2也有很不小的改变
freemarker的使用过程中,也有不小的挑战,因为资料也不算特别多,而且对freemarker的特性也不是很熟
对于前端的框架,因为好久没用,也是不太熟悉。所以,这三个星期的实战,不太顺利,多次踩坑还没有太多的资料可查。
首先,kotlin下,springBoot的启动方式有以下两种,
1 SpringApplication.run(DemoApplication::class.java,*args)
2 runApplication <DemoApplication>(*args)
方式1,在java下也能使用,在java下的写法 SpringApplication.run(DemoAllication.class, args)
方法2,只能在kotlin下使用
然后,指定的类文件最好是有@SpringBootApplication 这个注解的类文件,虽然指定其他的controller文件之类的,也能启动SpringBoot,但是那样需要额外的配置
(需要增加自动扫描的注解
//@EnableAutoConfiguration
//@ComponentScan(basePackages = ["com.xyz"])
//@EntityScan("com.xyz.entity")
//@EnableJpaRepositories("com.xyz.repository")
,而且那个启动方式本身就是错误的)
@Resource 比 @Autowired 更有效,虽然这两个注解的用法基本相等,具体原因需要补下spring的原来。。。
在kotlin里,自动装载的Bean必须要先实例化或者lateinit(缓初始化)
在spring4.3 之后,加入了 @GetMapping @PostMapping等注解来简化 @RequestMapping
用@Configuration注解该类,等价 与XML中配置beans;用@Bean标注方法等价于XML中配置bean。
需要注册简单请求转发跳转View的RequestMapping 可以扩展
WebMvnConfigurer接口
进行重写(override)
在springBoot 2 中需要注意,因为使用的是spring5了,
原先的方法的是 继承 webMvcConfigurerAdapter抽象类,现在是直接扩展webMvcConfigurer这个接口。原先的方式还能生效,不过已经被5弃用了(@
deprecated
)
之前需要继承抽象类完成的工作,现在可以全部通过扩展接口来完成。
通过创建类继承
WebSecurityConfigurerAdapter
这个抽象类,可以对Spring Security 框架下的登录,忽略保护等操作进行修改。
登录页面的修改,需要重写(override)configure(http :HttpSecurity)具体的教材,可以查询网络,这类教程比较多。
举个例子:
override fun
configure
(http: HttpSecurity) {
http
.authorizeRequests()
.antMatchers(
"/"
).permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage(
"/login"
)
.permitAll()
.and()
.logout()
.logoutUrl(
"/logout"
)
.logoutSuccessUrl(
"/login?logout"
)