springboot博客系统带后台文件管理权限系统源码
2023年7月18日发(作者:)
springboot博客系统带后台⽂件管理权限系统源码 前⾔:本⽂将向您展⽰了如何结合Spring Boot和Kotlin的强⼤功能,⾼效地构建⼀个博客系统。如果您从Kotlin开始,您可以通过阅读参考⽂档、遵循Kotlin Koans在线教程或者仅仅使⽤Spring Framework参考⽂档(现在提供了Kotlin的代码⽰例)来学习这门语⾔。 源码: Spring Framework和Spring Boot参考⽂档中记录了Spring Kotlin⽀持。如果您需要帮助,可以在StackOverflow上搜索spring和kotlin标签,或者在kotlin Slack的#spring频道进⾏讨论。 ⼀、创建新项⽬ ⾸先,我们需要创建Spring Boot应⽤程序,这可以通过多种⽅式实现。 使⽤Initializr⽹站 选择Kotlin语⾔。Gradle是Kotlin中最常⽤的构建⼯具,它提供了⼀个Kotlin DSL,在⽣成Kotlin项⽬时默认使⽤,所以这是推荐的选择。但是,如果您对Maven⽐较熟悉,也可以使⽤它。注意,您可以使⽤Gradle -project默认选择Kotlin和Gradle。 1、选择“Gradle Project”或者让默认的“Maven Project”,这取决于你想要使⽤的构建⼯具; 2、输⼊以下⼯件坐标:blog; 3、添加以下依赖项:Spring Web、Mustache、Spring Data JPA、H2 Database和Spring Boot DevTools; 4、单击“⽣成项⽬”。 zip⽂件在根⽬录中包含⼀个标准项⽬,因此您可能希望在解包之前创建⼀个空⽬录。 ⼆、使⽤命令⾏ 你可以在命令⾏中使⽤Initializr HTTP API,例如,在UN*X之类的系统上使⽤curl:如果你想使⽤Gradle,添加-d type= Gradle -project。 $ mkdir blog && cd blog $ curl / -d language=kotlin -d dependencies=web,mustache,jpa,h2,devtools -dpackageName= -d name=Blog -o 三、使⽤IntelliJ IDEA Spring Initializr也集成在IntelliJ IDEA Ultimate版中,允许你创建和导⼊⼀个新项⽬,⽽不需要离开IDE使⽤命令⾏或web UI。 要访问向导,转到⽂件|新建|项⽬,并选择Spring Initializr。 按照向导的步骤使⽤以下参数:⼯件:“博客”,类型:Maven项⽬或Gradle项⽬,语⾔:芬兰湾的科特林,名称:“博客”和依赖项:“SpringWeb Starter”,“Mustache”,“Spring Data JPA”,“H2 Database”和“Spring Boot DevTools”。 四、理解Gradle构建 如果您正在使⽤Maven Build,您可以跳到专门的部分。 import Compile plugins { kotlin("") version "1.4.32" id("") version "2.4.4" id("ency-management") version "E" kotlin("jvm") version "1.4.32" kotlin("") version "1.4.32" } 插件 除了明显的Kotlin Gradle插件,默认配置声明了Kotlin - Spring插件,它会⾃动打开带有Spring注释的类和⽅法(与Java不同,Kotlin的默认限定符是final)或元注释的。这对于创建@Configuration或@Transactional bean⾮常有⽤,⽽不需要添加开放限定符(例如CGLIB代理所需)。 为了能够在JPA中使⽤Kotlin的⾮空属性,Kotlin JPA插件也被启⽤了。它为任何带有@Entity, @MappedSuperclass或@ embed注解的类⽣成⽆参数构造函数。 五、编译器选项 Kotlin的关键特性之⼀是空值安全——它在编译时⼲净地处理空值,⽽不是在运⾏时遇到著名的NullPointerException。通过声明可空性和表达“值或⽆值”语义,这使得应⽤程序更安全,⽽⽆需⽀付像Optional这样的包装器的成本。注意,Kotlin允许使⽤带有空值的函数结构;查看Kotlin零安全的全⾯指南。 pe { kotlinOptions { freeCompilerArgs = listOf("-Xjsr305=strict") jvmTarget = "1.8" } } 尽管Java不允许在它的类型系统中表达空安全,Spring框架通过在包中声明的⼯具友好的注释,为整个Spring框架API提供了空安全。默认情况下,Kotlin中使⽤的Java api的类型被识别为放松空检查的平台类型。Kotlin对JSR 305注解+Spring空值性注解的⽀持,为Kotlin开发者提供了整个Spring框架API的空值安全性,并在编译时处理与空值相关的问题。 可以通过添加带有strict选项的-Xjsr305编译器标志来启⽤该特性。 还请注意,Kotlin编译器被配置为⽣成Java 8字节码(默认情况下是Java 6)。 六、依赖关系 三类Spring Boot web应⽤程序需要Kotlin特定库,并默认配置:Kotlin -stdlib-jdk8是Kotlin标准库的Java 8变体、Kotlin -reflect是Kotlin反射库和jackson-module-kotlin增加了对Kotlin类和数据类的序列化/反序列化的⽀持(可以⾃动使⽤单个构造函数类,也⽀持那些具有⼆级构造函数或静态⼯⼚的类)。 dependencies { implementation(":spring-boot-starter-data-jpa") implementation(":spring-boot-starter-mustache") implementation(":spring-boot-starter-web") implementation(":jackson-module-kotlin") implementation(":kotlin-reflect") implementation(":kotlin-reflect") implementation(":kotlin-stdlib-jdk8") runtimeOnly("com.h2database:h2") runtimeOnly(":spring-boot-devtools") testImplementation(":spring-boot-starter-test") } Spring Boot Gradle插件会⾃动使⽤通过Kotlin Gradle插件声明的Kotlin版本。 现在可以更深⼊地了解⽣成的应⽤程序。 七、理解Maven构建 除了明显的Kotlin Maven插件外,默认配置声明了Kotlin - Spring插件,该插件⾃动打开带有Spring注释的类和⽅法(与Java不同,Kotlin的默认限定符是final)或元注释。这对于创建@Configuration或@Transactional bean⾮常有⽤,⽽不需要添加开放限定符(例如CGLIB代理所需)。 为了能够在JPA中使⽤Kotlin的⾮空属性,Kotlin JPA插件也被启⽤了。它为任何带有@Entity, @MappedSuperclass或@ embed注解的类⽣成⽆参数构造函数。 ${r}/src/main/kotlin ${r}/src/test/kotlin spring-boot-maven-plugin kotlin-maven-plugin jpa spring -Xjsr305=strict kotlin-maven-noarg ${n} kotlin-maven-allopen ${n} Kotlin的关键特性之⼀是空值安全——它在编译时⼲净地处理空值,⽽不是在运⾏时遇到著名的NullPointerException。通过声明可空性和表达“值或⽆值”语义,这使得应⽤程序更安全,⽽⽆需⽀付像Optional这样的包装器的成本。注意,Kotlin允许使⽤带有空值的函数结构;查看Kotlin零安全的全⾯指南。 尽管Java不允许在它的类型系统中表达空安全,Spring框架通过在包中声明的⼯具友好的注释,为整个Spring框架API提供了空安全。默认情况下,Kotlin中使⽤的Java api的类型被识别为放松空检查的平台类型。Kotlin对JSR 305注解+Spring空值性注解的⽀持,为Kotlin开发者提供了整个Spring框架API的空值安全性,并在编译时处理与空值相关的问题。 可以通过添加带有strict选项的-Xjsr305编译器标志来启⽤该特性。 还请注意,Kotlin编译器被配置为⽣成Java 8字节码(默认情况下是Java 6)。 ⼋、依赖关系 3 .此类Spring Boot web应⽤程序需要Kotlin特定库,并默认配置:Kotlin -stdlib-jdk8是Kotlin标准库的Java 8变体、Kotlin -reflect是Kotlin反射库(从Spring Framework 5开始是强制性的)和jackson-module-kotlin增加了对Kotlin类和数据类的序列化/反序列化的⽀持是Kotlin反射库(从Spring Framework 5开始是强制性的)和jackson-module-kotlin增加了对Kotlin类和数据类的序列化/反序列化的⽀持(可以⾃动使⽤单个构造函数类,也⽀持那些具有⼆级构造函数或静态⼯⼚的类) spring-boot-starter-data-jpa spring-boot-starter-mustache spring-boot-starter-web jackson-module-kotlin kotlin-reflect kotlin-stdlib-jdk8 spring-boot-devtools runtime com.h2database h2 runtime spring-boot-starter-test test 九、理解⽣成的应⽤程序 与Java相⽐,您可以注意到缺少分号,空类上缺少括号(如果需要通过@Bean注释声明bean,可以添加⼀些括号),以及使⽤runApplication顶级函数。runApplication (*args)是(BlogApplication::, *args)的Kotlin习惯替代品,可以⽤以下语法来定制应⽤程序。
发布者:admin,转转请注明出处:http://www.yc00.com/web/1689628888a272066.html
评论列表(0条)