diff --git a/build.gradle.kts b/build.gradle.kts index 6f0acc6..9148500 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -17,11 +17,15 @@ repositories { dependencies { implementation("org.springframework.boot:spring-boot-starter") + implementation("org.springframework.boot:spring-boot-starter-web") + implementation("org.springframework.boot:spring-boot-starter-aop") implementation("org.jetbrains.kotlin:kotlin-reflect") implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8") testImplementation("org.springframework.boot:spring-boot-starter-test") implementation("com.github.xiaoymin:knife4j-spring-boot-starter:3.0.2") implementation("com.baomidou:mybatis-plus-boot-starter:3.4.2") + implementation("com.alibaba:druid-spring-boot-starter:1.2.5") + implementation("org.postgresql:postgresql:42.2.18") } tasks.withType { diff --git a/src/main/kotlin/email/timemail/mail/MailApplication.kt b/src/main/kotlin/email/timemail/mail/MailApplication.kt index a765e8a..c7154e2 100644 --- a/src/main/kotlin/email/timemail/mail/MailApplication.kt +++ b/src/main/kotlin/email/timemail/mail/MailApplication.kt @@ -1,11 +1,13 @@ package email.timemail.mail +import org.mybatis.spring.annotation.MapperScan import org.springframework.boot.autoconfigure.SpringBootApplication import org.springframework.boot.runApplication @SpringBootApplication +@MapperScan("email.timemail.mail.mapper*") class MailApplication fun main(args: Array) { - runApplication(*args) + runApplication(*args) } diff --git a/src/main/kotlin/email/timemail/mail/config/SwaggerConfig.kt b/src/main/kotlin/email/timemail/mail/config/SwaggerConfig.kt new file mode 100644 index 0000000..d38c566 --- /dev/null +++ b/src/main/kotlin/email/timemail/mail/config/SwaggerConfig.kt @@ -0,0 +1,45 @@ +package email.timemail.mail.config + +import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j +import io.swagger.annotations.ApiOperation +import org.springframework.context.annotation.Bean +import org.springframework.context.annotation.Configuration +import org.springframework.context.annotation.Import +import springfox.bean.validators.configuration.BeanValidatorPluginsConfiguration +import springfox.documentation.builders.ApiInfoBuilder +import springfox.documentation.builders.PathSelectors +import springfox.documentation.builders.RequestHandlerSelectors +import springfox.documentation.service.ApiInfo +import springfox.documentation.service.Contact +import springfox.documentation.spi.DocumentationType +import springfox.documentation.spring.web.plugins.Docket +import springfox.documentation.swagger2.annotations.EnableSwagger2 + +@Configuration +@EnableSwagger2 +@EnableKnife4j +@Import(BeanValidatorPluginsConfiguration::class) +open class SwaggerConfig { + @Bean + open fun api(): Docket { + return Docket(DocumentationType.SWAGGER_2) + .apiInfo(apiInfo()) + .pathMapping("/") + .select() + .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation::class.java)) + .paths(PathSelectors.regex("/.*")) + .build() + + } + + private fun apiInfo(): ApiInfo { + return ApiInfoBuilder().title("Api Document") + .contact(Contact("rainerosion", "http://timemail.email", "admin@rainss.cn")) + .description("这是Knife4j生成的接口文档") + .termsOfServiceUrl("https://git.rainss.cn/timemail/timemail-service") + .license("The Apache License, Version 2.0") + .licenseUrl("http://www.apache.org/licenses/LICENSE-2.0.html") + .version("v1.0") + .build() + } +} \ No newline at end of file