// .vuepress/config.js const path = require("path"); const host_url = "https://spring.gitcode.net/"; const autometa_options = { site: { name: "Spring 中文文档社区" }, canonical_base: host_url }; module.exports = { title: "Spring 中文文档社区", base: "/", head: [ [ "link", { rel: "icon", type: "image/png", sizes: "16x16", href: `/images/icons/favicon.ico` } ], [ "link", { rel: "icon", type: "image/png", sizes: "48x48", href: `/images/icons/icon-48x48.png` } ], [ "link", { rel: "icon", type: "image/png", sizes: "72x72", href: `/images/icons/icon-72x72.png` } ], ["link", { rel: "manifest", href: "/manifest.webmanifest" }], ["meta", { name: "application-name", content: "Spring 中文文档社区" }], [ "meta", { name: "apple-mobile-web-app-title", content: "Spring 中文社区" } ], [ "meta", { name: "apple-mobile-web-app-status-bar-style", content: "black" } ], ["link", { rel: "apple-touch-icon", href: `/images/icons/icon_48x48.png` }], [ "link", { rel: "mask-icon", href: "/images/icons/favicon.ico", color: "#5dac38" } ], ["meta", { name: "msapplication-TileColor", content: "#5dac38" }], ["meta", { name: "theme-color", content: "#5dac38" }], [ "meta", { name: "viewport", content: "width=device-width, initial-scale=1" } ], ["meta", { "http-equiv": "X-UA-Compatible", content: "IE=edge" }], ["meta", { name: "baidu-site-verification", content: "code-tApgxyb9G8" }], ['script', {},` var _hmt = _hmt || []; (function () { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?8eefd6b163dcb3f5762af6b0825e2dd1"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); `] ], locales: { '/en/': { lang: 'en-US', title: 'Spring Docs', description: '' }, "/": { lang: "zh-CN", title: "中文文档", description: "" } }, plugins: [ ["autometa", autometa_options], ['sitemap', { hostname: host_url, // 排除无实际内容的页面 exclude: ["/404.html"] } ], [ '@vuepress/last-updated', { transformer: (timestamp, lang) => { const moment = require('moment') moment.locale(lang) return moment(timestamp).toString() } } ] ], theme: path.resolve(__dirname, "./themes/theme-gitcode/index.js"), themeConfig: { repo: "https://gitcode.net/dev-cloud/spring-docs", repoLabel: "GitCode", docsRepo: "https://gitcode.net/dev-cloud/spring-docs/", docsDir: "docs", docsBranch: "master", editLinks: true, editLinkText: "帮助我们改善此页面!", lastUpdated: "Last Updated", logo: "/images/icons/spring-logo.svg", sidebarDepth: 3, activeHeaderLinks: true, locales: { '/en/': { // 多语言下拉菜单的标题 selectText: 'Language', // 该语言在下拉菜单中的标签 label: 'English', lastUpdated: 'Last Updated', lang: 'en-US', // 编辑链接文字 editLinkText: 'Edit this page on GitCode', algolia: {}, nav: [ { text: "Spring", link: '/en/spring/why-spring.html' }, { text: "Spring Boot", link: '/en/spring-boot/getting-help.html' }, { text: "Spring Cloud", link: '/en/spring-cloud/documentation-overview.html' }, { text: "more", ariaLabel: "Others", items: [ { text: "Spring Framework", link: '/en/spring-framework/overview.html' }, { text: "Spring Data", link: '/en/spring-data/spring-data.html' }, { text: 'Spring Cloud Data Flow', link: '/en/spring-cloud-data-flow/spring-cloud-dataflow.html' }, { text: 'Spring Security', link: '/en/spring-security/overview.html' }, { text: 'Spring for GraphQL', link: '/en/spring-for-graphql/spring-graphql.html' }, { text: 'Spring Session', link: '/en/spring-session/_index.html' }, { text: 'Spring Integration', link: '/en/spring-integration/preface.html' }, { text: 'Spring HATEOAS', link: '/en/spring-hateoas/spring-hateoas.html' }, { text: 'Spring REST Docs', link: '/en/spring-rest-docs/spring-restdocs.html' }, { text: 'Spring Batch', link: '/en/spring-batch/spring-batch-intro.html' }, { text: 'Spring AMQP', link: '/en/spring-amqp/spring-amqp.html' }, { text: 'Spring CredHub', link: '/en/spring-credhub/spring-credhub.html' }, { text: 'Spring Flo', link: '/en/spring-flo/spring-flo.html' }, { text: 'Spring for Apache Kafka', link: '/en/spring-for-apache-kafka/spring-kafka.html' }, { text: 'Spring LDAP', link: '/en/spring-ldap/spring-ldap.html' }, { text: 'Spring Shell', link: '/en/spring-shell/spring-shell.html' }, { text: 'Spring Statemachine', link: '/en/spring-statemachine/spring-statemachine.html' }, { text: 'Spring Vault', link: '/en/spring-vault/spring-vault.html' }, { text: 'Spring Web Flow', link: '/en/spring-web-flow/preface.html' }, { text: 'Spring Web Services', link: '/en/spring-web-services/spring-web-service.html' } ] } ], sidebar: { '/en/spring-boot/': [ { title: 'Spring Boot', sidebarDepth: 2, collapsable: false, children: [ "getting-help.md", "documentation.md", "getting-started.md", "upgrading.md", "using.md", "features.md", "web.md", "data.md", "io.md", "messaging.md", "container-images.md", "actuator.md", "deployment.md", "cli.md", "build-tool-plugins.md", "howto.md" ], initialOpenGroupIndex: 0 } ], '/en/spring-framework/': [ { title: 'Spring Framework', sidebarDepth: 2, collapsable: false, children: [ "overview.md", "core.md", "testing.md", "data-access.md", "web-servlet.md", "web-reactive.md", "integration.md", "languages.md" ], initialOpenGroupIndex: 0 } ], '/en/spring-data/': [ { title: 'Spring Data', sidebarDepth: 2, collapsable: false, children: [ "spring-data.md" ], initialOpenGroupIndex: 0 } ], '/en/spring-cloud/': [ { title: 'Spring Cloud', sidebarDepth: 2, collapsable: false, children: [ "documentation-overview.md", "spring-cloud-build.md", "spring-cloud-bus.md", "spring-cloud-circuitbreaker.md", "spring-cloud-cli.md", "spring-cloud-cloudfoundry.md", "spring-cloud-commons.md", "spring-cloud-config.md", "spring-cloud-consul.md", "spring-cloud-contract.md", "spring-cloud-function.md", "spring-cloud-gateway.md", "spring-cloud-kubernetes.md", "spring-cloud-netflix.md", "spring-cloud-openfeign.md", "spring-cloud-sleuth.md", "spring-cloud-stream.md", "spring-cloud-task.md", "spring-cloud-vault.md", "spring-cloud-zookeeper.md" ], initialOpenGroupIndex: 0 } ], '/en/spring-cloud-data-flow/': [ { title: 'Spring Cloud Data Flow', sidebarDepth: 2, collapsable: false, children: [ "spring-cloud-dataflow.md", ], initialOpenGroupIndex: 0 } ], '/en/spring-security/': [ { title: 'Spring Security', sidebarDepth: 2, collapsable: false, children: [ "overview.md", "prerequisites.md", "community.md", "whats-new.md", "getting-spring-security.md", "features.md", "features-authentication.md", "features-authentication-password-storage.md", "features-exploits.md", "features-exploits-csrf.md", "features-exploits-headers.md", "features-exploits-http.md", "features-integrations.md", "features-integrations-cryptography.md", "features-integrations-data.md", "features-integrations-concurrency.md", "features-integrations-jackson.md", "features-integrations-localization.md", "modules.md", "samples.md", "servlet.md", "servlet-getting-started.md", "servlet-architecture.md", "servlet-authentication.md", "servlet-authentication-architecture.md", "servlet-authentication-passwords.md", "servlet-authentication-passwords-input.md", "servlet-authentication-passwords-form.md", "servlet-authentication-passwords-basic.md", "servlet-authentication-passwords-digest.md", "servlet-authentication-passwords-storage.md", "servlet-authentication-passwords-storage-in-memory.md", "servlet-authentication-passwords-storage-jdbc.md", "servlet-authentication-passwords-storage-user-details.md", "servlet-authentication-passwords-storage-user-details-service.md", "servlet-authentication-passwords-storage-password-encoder.md", "servlet-authentication-passwords-storage-dao-authentication-provider.md", "servlet-authentication-passwords-storage-ldap.md", "servlet-authentication-session-management.md", "servlet-authentication-rememberme.md", "servlet-authentication-openid.md", "servlet-authentication-anonymous.md", "servlet-authentication-preauth.md", "servlet-authentication-jaas.md", "servlet-authentication-cas.md", "servlet-authentication-x509.md", "servlet-authentication-runas.md", "servlet-authentication-logout.md", "servlet-authentication-events.md", "servlet-authorization-.md", "servlet-authorization-architecture.md", "servlet-authorization-authorize-http-requests.md", "servlet-authorization-authorize-requests.md", "servlet-authorization-expression-based.md", "servlet-authorization-secure-objects.md", "servlet-authorization-method-security.md", "servlet-authorization-acls.md", "servlet-oauth2-.md", "servlet-oauth2-login.md", "servlet-oauth2-login-core.md", "servlet-oauth2-login-advanced.md", "servlet-oauth2-client.md", "servlet-oauth2-client-core.md", "servlet-oauth2-client-authorization-grants.md", "servlet-oauth2-client-client-authentication.md", "servlet-oauth2-client-authorized-clients.md", "servlet-oauth2-resource-server.md", "servlet-oauth2-resource-server-jwt.md", "servlet-oauth2-resource-server-opaque-token.md", "servlet-oauth2-resource-server-multitenancy.md", "servlet-oauth2-resource-server-bearer-tokens.md", "servlet-saml2.md", "servlet-saml2-login.md", "servlet-saml2-login-overview.md", "servlet-saml2-login-authentication-requests.md", "servlet-saml2-login-authentication.md", "servlet-saml2-logout.md", "servlet-saml2-metadata.md", "servlet-exploits.md", "servlet-exploits-csrf.md", "servlet-exploits-headers.md", "servlet-exploits-http.md", "servlet-exploits-firewall.md", "servlet-integrations.md", "servlet-integrations-concurrency.md", "servlet-integrations-jackson.md", "servlet-integrations-localization.md", "servlet-integrations-servlet-api.md", "servlet-integrations-data.md", "servlet-integrations-mvc.md", "servlet-integrations-websocket.md", "servlet-integrations-cors.md", "servlet-integrations-jsp-taglibs.md", "servlet-configuration-java.md", "servlet-configuration-kotlin.md", "servlet-configuration-xml-namespace.md", "servlet-test.md", "servlet-test-method.md", "servlet-test-mockmvc.md", "servlet-test-mockmvc-setup.md", "servlet-test-mockmvc-request-post-processors.md", "servlet-test-mockmvc-authentication.md", "servlet-test-mockmvc-csrf.md", "servlet-test-mockmvc-form-login.md", "servlet-test-mockmvc-http-basic.md", "servlet-test-mockmvc-oauth2.md", "servlet-test-mockmvc-logout.md", "servlet-test-mockmvc-request-builders.md", "servlet-test-mockmvc-result-matchers.md", "servlet-test-mockmvc-result-handlers.md", "servlet-appendix.md", "servlet-appendix-database-schema.md", "servlet-appendix-namespace.md", "servlet-appendix-namespace-authentication-manager.md", "servlet-appendix-namespace-http.md", "servlet-appendix-namespace-method-security.md", "servlet-appendix-namespace-ldap.md", "servlet-appendix-namespace-websocket.md", "servlet-appendix-faq.md", "reactive.md", "reactive-getting-started.md", "reactive-authentication-x509.md", "reactive-authentication-logout.md", "reactive-authorization-authorize-http-requests.md", "reactive-authorization-method.md", "reactive-oauth2.md", "reactive-oauth2-login.md", "reactive-oauth2-login-core.md", "reactive-oauth2-login-advanced.md", "reactive-oauth2-client.md", "reactive-oauth2-client-core.md", "reactive-oauth2-client-authorization-grants.md", "reactive-oauth2-client-client-authentication.md", "reactive-oauth2-client-authorized-clients.md", "reactive-oauth2-resource-server.md", "reactive-oauth2-resource-server-jwt.md", "reactive-oauth2-resource-server-opaque-token.md", "reactive-oauth2-resource-server-multitenancy.md", "reactive-oauth2-resource-server-bearer-tokens.md", "reactive-exploits.md", "reactive-exploits-csrf.md", "reactive-exploits-headers.md", "reactive-exploits-http.md", "reactive-integrations-cors.md", "reactive-integrations-rsocket.md", "reactive-test.md", "reactive-test-method.md", "reactive-test-web.md", "reactive-test-web-setup.md", "reactive-test-web-authentication.md", "reactive-test-web-csrf.md", "reactive-test-web-oauth2.md", "reactive-configuration-webflux.md" ], initialOpenGroupIndex: 0 } ], "/en/spring-for-graphql/": [ { title: "Spring For Graphql", sidebarDepth: 2, collapsable: false, children: ["spring-graphql.md"], initialOpenGroupIndex: 0 } ], "/en/spring-session/": [ { title: "Spring Session", sidebarDepth: 2, collapsable: false, children: [ "_index.md", "whats-new.md", "samples.md", "bootSamples/HttpSession/mongo.md", "bootSamples/HttpSession/jdbc.md", "bootSamples/HttpSession/Redis/boot-redis.md", "bootSamples/boot-findbyusername.md", "bootSamples/boot-websocket.md", "webFlux/boot-webflux-custom-cookie.md", "modules.md", "http-session.md", "web-socket.md", "web-session.md", "spring-security.md", "api.md", "upgrading.md" ], initialOpenGroupIndex: 0 } ], "/en/spring-integration/": [ { title: "Spring Integration", sidebarDepth: 2, collapsable: false, children: [ "preface.md", "whats-new.md", "overview.md", "core.md", "message.md", "message-routing.md", "message-transformation.md", "messaging-endpoints.md", "dsl.md", "kotlin-dsl.md", "system-management.md", "reactive-streams.md", "endpoint-summary.md", "amqp.md", "event.md", "feed.md", "file.md", "ftp.md", "gemfire.md", "http.md", "jdbc.md", "jpa.md", "jms.md", "jmx.md", "kafka.md", "mail.md", "mongodb.md", "mqtt.md", "r2dbc.md", "redis.md", "resource.md", "rmi.md", "rsocket.md", "sftp.md", "stomp.md", "stream.md", "syslog.md", "ip.md", "webflux.md", "web-sockets.md", "ws.md", "xml.md", "xmpp.md", "zeromq.md", "zookeeper.md", "error-handling.md", "spel.md", "message-publishing.md", "transactions.md", "security.md", "configuration.md", "testing.md", "samples.md", "resources.md", "history.md" ], initialOpenGroupIndex: 0 } ], "/en/spring-hateoas/": [ { title: "Spring HATEOAS", sidebarDepth: 2, collapsable: false, children: ["spring-hateoas.md"], initialOpenGroupIndex: 0 } ], "/en/spring-rest-docs/": [ { title: "Spring REST Docs", sidebarDepth: 2, collapsable: false, children: ["spring-restdocs.md"], initialOpenGroupIndex: 0 } ], "/en/spring-batch/": [ { title: "Spring Batch 文档", sidebarDepth: 2, collapsable: false, children: [ "spring-batch-intro.md", "whatsnew.md", "domain.md", "job.md", "step.md", "readersAndWriters.md", "processor.md", "scalability.md", "repeat.md", "retry.md", "testing.md", "common-patterns.md", "jsr-352.md", "spring-batch-integration.md", "monitoring-and-metrics.md", "appendix.md", "schema-appendix.md", "transaction-appendix.md", "glossary.md" ], initialOpenGroupIndex: 0 } ], "/en/spring-amqp/": [ { title: "Spring AMQP", sidebarDepth: 2, collapsable: false, children: ["spring-amqp.md"], initialOpenGroupIndex: 0 } ], "/en/spring-credhub/": [ { title: "Spring CredHub", sidebarDepth: 2, collapsable: false, children: ["spring-credhub.md"], initialOpenGroupIndex: 0 } ], "/en/spring-flo/": [ { title: "Spring Flo", sidebarDepth: 2, collapsable: false, children: ["spring-flo.md"], initialOpenGroupIndex: 0 } ], "/en/spring-for-apache-kafka/": [ { title: "Spring for Apache Kafka", sidebarDepth: 2, collapsable: false, children: ["spring-kafka.md"], initialOpenGroupIndex: 0 } ], "/en/spring-ldap/": [ { title: "Spring for Apache Kafka", sidebarDepth: 2, collapsable: false, children: ["spring-ldap.md"], initialOpenGroupIndex: 0 } ], "/en/spring-shell/": [ { title: "Spring Shell", sidebarDepth: 2, collapsable: false, children: ["spring-shell.md"], initialOpenGroupIndex: 0 } ], "/en/spring-statemachine/": [ { title: "Spring Statemachine", sidebarDepth: 2, collapsable: false, children: ["spring-statemachine.md"], initialOpenGroupIndex: 0 } ], "/en/spring-vault/": [ { title: "Spring Vault", sidebarDepth: 2, collapsable: false, children: ["spring-vault.md"], initialOpenGroupIndex: 0 } ], "/en/spring-web-flow/": [ { title: "Spring Web Flow", sidebarDepth: 2, collapsable: false, children: [ "preface.md", "introduction.md", "whatsnew.md", "defining-flows.md", "el.md", "views.md", "actions.md", "flow-managed-persistence.md", "flow-security.md", "flow-inheritance.md", "system-setup.md", "spring-mvc.md", "spring-js.md", "spring-faces.md", "testing.md", "field-mappings.md" ], initialOpenGroupIndex: 0 } ], "/en/spring-web-services/": [ { title: "Spring Web Services", sidebarDepth: 2, collapsable: false, children: ["spring-web-service.md"], initialOpenGroupIndex: 0 } ], // fallback '/en/spring/': [ { title: 'INTRO', sidebarDepth: 2, collapsable: false, children: [ "why-spring.md", "introducing-spring-boot.md", "quickstart.md" ], initialOpenGroupIndex: 0 }, { title: 'GUIDE', sidebarDepth: 2, collapsable: false, children: [ "system-requirements.md", "installing.md", "initializr.md" ], initialOpenGroupIndex: 0 }, { title: 'IDE', sidebarDepth: 2, collapsable: false, children: [ "vscode_java.md", "intellij_idea.md" ], initialOpenGroupIndex: 0 }, { title: 'DEMO', sidebarDepth: 2, collapsable: false, children: [ "getting-started_first-application.md", "rest-service.md", "consuming-rest.md" ], initialOpenGroupIndex: 0 } ] } }, "/": { selectText: "选择语言", label: "简体中文", ariaLabel: "语言", lang: "zh-CN", editLinkText: "在 GitCode 上编辑此页", lastUpdated: "上次更新", algolia: {}, nav: [ { text: "Spring", link: '/why-spring.html' }, { text: "Spring Boot", link: '/spring-boot/getting-help.html' }, { text: "Spring Cloud", link: '/spring-cloud/documentation-overview.html' }, { text: "更多文档", ariaLabel: "Others", items: [ {text: "Spring Framework",link: '/spring-framework/overview.html'}, {text: "Spring Data",link: '/spring-data/spring-data.html'}, { text: 'Spring Cloud Data Flow', link: '/spring-cloud-data-flow/spring-cloud-dataflow.html' }, { text: 'Spring Security', link: '/spring-security/overview.html' }, { text: 'Spring for GraphQL', link: '/spring-for-graphql/spring-graphql.html' }, { text: 'Spring Session', link: '/spring-session/_index.html' }, { text: 'Spring Integration', link: '/spring-integration/preface.html' }, { text: 'Spring HATEOAS', link: '/spring-hateoas/spring-hateoas.html' }, { text: 'Spring REST Docs', link: '/spring-rest-docs/spring-restdocs.html' }, { text: 'Spring Batch', link: '/spring-batch/spring-batch-intro.html' }, { text: 'Spring AMQP', link: '/spring-amqp/spring-amqp.html' }, { text: 'Spring CredHub', link: '/spring-credhub/spring-credhub.html' }, { text: 'Spring Flo', link: '/spring-flo/spring-flo.html' }, { text: 'Spring for Apache Kafka', link: '/spring-for-apache-kafka/spring-kafka.html' }, { text: 'Spring LDAP', link: '/spring-ldap/spring-ldap.html' }, { text: 'Spring Shell', link: '/spring-shell/spring-shell.html' }, { text: 'Spring Statemachine', link: '/spring-statemachine/spring-statemachine.html' }, { text: 'Spring Vault', link: '/spring-vault/spring-vault.html' }, { text: 'Spring Web Flow', link: '/spring-web-flow/preface.html' }, { text: 'Spring Web Services', link: '/spring-web-services/spring-web-service.html' } ] } ], sidebar: { "/spring-boot/": [ { title: "Spring Boot 文档", sidebarDepth: 2, collapsable: false, children: [ "getting-help.md", "documentation.md", "getting-started.md", "upgrading.md", "using.md", "features.md", "web.md", "data.md", "io.md", "messaging.md", "container-images.md", "actuator.md", "deployment.md", "cli.md", "build-tool-plugins.md", "howto.md" ], initialOpenGroupIndex: 0 } ], "/spring-framework/": [ { title: "Spring Framework 文档", sidebarDepth: 2, collapsable: false, children: [ "overview.md", "core.md", "testing.md", "data-access.md", "web-servlet.md", "web-reactive.md", "integration.md", "languages.md" ], initialOpenGroupIndex: 0 } ], "/spring-data/": [ { title: "Spring Data 文档", sidebarDepth: 2, collapsable: false, children: [ "spring-data.md" ], initialOpenGroupIndex: 0 } ], "/spring-cloud/": [ { title: "Spring Cloud 文档", sidebarDepth: 2, collapsable: false, children: [ "documentation-overview.md", "spring-cloud-build.md", "spring-cloud-bus.md", "spring-cloud-circuitbreaker.md", "spring-cloud-cli.md", "spring-cloud-cloudfoundry.md", "spring-cloud-commons.md", "spring-cloud-config.md", "spring-cloud-consul.md", "spring-cloud-contract.md", "spring-cloud-function.md", "spring-cloud-gateway.md", "spring-cloud-kubernetes.md", "spring-cloud-netflix.md", "spring-cloud-openfeign.md", "spring-cloud-sleuth.md", "spring-cloud-stream.md", "spring-cloud-task.md", "spring-cloud-vault.md", "spring-cloud-zookeeper.md" ], initialOpenGroupIndex: 0 } ], "/spring-cloud-data-flow/": [ { title: "Spring Cloud Data Flow 文档", sidebarDepth: 2, collapsable: false, children: ["spring-cloud-dataflow.md"], initialOpenGroupIndex: 0 } ], "/spring-security/": [ { title: "Spring 安全", sidebarDepth: 2, collapsable: false, children: [ "overview.md", "prerequisites.md", "community.md", "whats-new.md", "getting-spring-security.md", "features.md", "features-authentication.md", "features-authentication-password-storage.md", "features-exploits.md", "features-exploits-csrf.md", "features-exploits-headers.md", "features-exploits-http.md", "features-integrations.md", "features-integrations-cryptography.md", "features-integrations-data.md", "features-integrations-concurrency.md", "features-integrations-jackson.md", "features-integrations-localization.md", "modules.md", "samples.md", "servlet.md", "servlet-getting-started.md", "servlet-architecture.md", "servlet-authentication.md", "servlet-authentication-architecture.md", "servlet-authentication-passwords.md", "servlet-authentication-passwords-input.md", "servlet-authentication-passwords-form.md", "servlet-authentication-passwords-basic.md", "servlet-authentication-passwords-digest.md", "servlet-authentication-passwords-storage.md", "servlet-authentication-passwords-storage-in-memory.md", "servlet-authentication-passwords-storage-jdbc.md", "servlet-authentication-passwords-storage-user-details.md", "servlet-authentication-passwords-storage-user-details-service.md", "servlet-authentication-passwords-storage-password-encoder.md", "servlet-authentication-passwords-storage-dao-authentication-provider.md", "servlet-authentication-passwords-storage-ldap.md", "servlet-authentication-session-management.md", "servlet-authentication-rememberme.md", "servlet-authentication-openid.md", "servlet-authentication-anonymous.md", "servlet-authentication-preauth.md", "servlet-authentication-jaas.md", "servlet-authentication-cas.md", "servlet-authentication-x509.md", "servlet-authentication-runas.md", "servlet-authentication-logout.md", "servlet-authentication-events.md", "servlet-authorization-.md", "servlet-authorization-architecture.md", "servlet-authorization-authorize-http-requests.md", "servlet-authorization-authorize-requests.md", "servlet-authorization-expression-based.md", "servlet-authorization-secure-objects.md", "servlet-authorization-method-security.md", "servlet-authorization-acls.md", "servlet-oauth2-.md", "servlet-oauth2-login.md", "servlet-oauth2-login-core.md", "servlet-oauth2-login-advanced.md", "servlet-oauth2-client.md", "servlet-oauth2-client-core.md", "servlet-oauth2-client-authorization-grants.md", "servlet-oauth2-client-client-authentication.md", "servlet-oauth2-client-authorized-clients.md", "servlet-oauth2-resource-server.md", "servlet-oauth2-resource-server-jwt.md", "servlet-oauth2-resource-server-opaque-token.md", "servlet-oauth2-resource-server-multitenancy.md", "servlet-oauth2-resource-server-bearer-tokens.md", "servlet-saml2.md", "servlet-saml2-login.md", "servlet-saml2-login-overview.md", "servlet-saml2-login-authentication-requests.md", "servlet-saml2-login-authentication.md", "servlet-saml2-logout.md", "servlet-saml2-metadata.md", "servlet-exploits.md", "servlet-exploits-csrf.md", "servlet-exploits-headers.md", "servlet-exploits-http.md", "servlet-exploits-firewall.md", "servlet-integrations.md", "servlet-integrations-concurrency.md", "servlet-integrations-jackson.md", "servlet-integrations-localization.md", "servlet-integrations-servlet-api.md", "servlet-integrations-data.md", "servlet-integrations-mvc.md", "servlet-integrations-websocket.md", "servlet-integrations-cors.md", "servlet-integrations-jsp-taglibs.md", "servlet-configuration-java.md", "servlet-configuration-kotlin.md", "servlet-configuration-xml-namespace.md", "servlet-test.md", "servlet-test-method.md", "servlet-test-mockmvc.md", "servlet-test-mockmvc-setup.md", "servlet-test-mockmvc-request-post-processors.md", "servlet-test-mockmvc-authentication.md", "servlet-test-mockmvc-csrf.md", "servlet-test-mockmvc-form-login.md", "servlet-test-mockmvc-http-basic.md", "servlet-test-mockmvc-oauth2.md", "servlet-test-mockmvc-logout.md", "servlet-test-mockmvc-request-builders.md", "servlet-test-mockmvc-result-matchers.md", "servlet-test-mockmvc-result-handlers.md", "servlet-appendix.md", "servlet-appendix-database-schema.md", "servlet-appendix-namespace.md", "servlet-appendix-namespace-authentication-manager.md", "servlet-appendix-namespace-http.md", "servlet-appendix-namespace-method-security.md", "servlet-appendix-namespace-ldap.md", "servlet-appendix-namespace-websocket.md", "servlet-appendix-faq.md", "reactive.md", "reactive-getting-started.md", "reactive-authentication-x509.md", "reactive-authentication-logout.md", "reactive-authorization-authorize-http-requests.md", "reactive-authorization-method.md", "reactive-oauth2.md", "reactive-oauth2-login.md", "reactive-oauth2-login-core.md", "reactive-oauth2-login-advanced.md", "reactive-oauth2-client.md", "reactive-oauth2-client-core.md", "reactive-oauth2-client-authorization-grants.md", "reactive-oauth2-client-client-authentication.md", "reactive-oauth2-client-authorized-clients.md", "reactive-oauth2-resource-server.md", "reactive-oauth2-resource-server-jwt.md", "reactive-oauth2-resource-server-opaque-token.md", "reactive-oauth2-resource-server-multitenancy.md", "reactive-oauth2-resource-server-bearer-tokens.md", "reactive-exploits.md", "reactive-exploits-csrf.md", "reactive-exploits-headers.md", "reactive-exploits-http.md", "reactive-integrations-cors.md", "reactive-integrations-rsocket.md", "reactive-test.md", "reactive-test-method.md", "reactive-test-web.md", "reactive-test-web-setup.md", "reactive-test-web-authentication.md", "reactive-test-web-csrf.md", "reactive-test-web-oauth2.md", "reactive-configuration-webflux.md" ], initialOpenGroupIndex: 0 } ], "/spring-for-graphql/": [ { title: "Spring For Graphql 文档", sidebarDepth: 2, collapsable: false, children: ["spring-graphql.md"], initialOpenGroupIndex: 0 } ], "/spring-session/": [ { title: "Spring Session 文档", sidebarDepth: 2, collapsable: false, children: [ "_index.md", "whats-new.md", "samples.md", "bootSamples/HttpSession/mongo.md", "bootSamples/HttpSession/jdbc.md", "bootSamples/HttpSession/Redis/boot-redis.md", "bootSamples/boot-findbyusername.md", "bootSamples/boot-websocket.md", "webFlux/boot-webflux-custom-cookie.md", "modules.md", "http-session.md", "web-socket.md", "web-session.md", "spring-security.md", "api.md", "upgrading.md" ], initialOpenGroupIndex: 0 } ], "/spring-integration/": [ { title: "Spring Integration 文档", sidebarDepth: 2, collapsable: false, children: [ "preface.md", "whats-new.md", "overview.md", "core.md", "message.md", "message-routing.md", "message-transformation.md", "messaging-endpoints.md", "dsl.md", "kotlin-dsl.md", "system-management.md", "reactive-streams.md", "endpoint-summary.md", "amqp.md", "event.md", "feed.md", "file.md", "ftp.md", "gemfire.md", "http.md", "jdbc.md", "jpa.md", "jms.md", "jmx.md", "kafka.md", "mail.md", "mongodb.md", "mqtt.md", "r2dbc.md", "redis.md", "resource.md", "rmi.md", "rsocket.md", "sftp.md", "stomp.md", "stream.md", "syslog.md", "ip.md", "webflux.md", "web-sockets.md", "ws.md", "xml.md", "xmpp.md", "zeromq.md", "zookeeper.md", "error-handling.md", "spel.md", "message-publishing.md", "transactions.md", "security.md", "configuration.md", "testing.md", "samples.md", "resources.md", "history.md" ], initialOpenGroupIndex: 0 } ], "/spring-hateoas/": [ { title: "Spring HATEOAS 文档", sidebarDepth: 2, collapsable: false, children: ["spring-hateoas.md"], initialOpenGroupIndex: 0 } ], "/spring-rest-docs/": [ { title: "Spring HATEOAS 文档", sidebarDepth: 2, collapsable: false, children: ["spring-restdocs.md"], initialOpenGroupIndex: 0 } ], "/spring-batch/": [ { title: "Spring Batch 文档", sidebarDepth: 2, collapsable: false, children: [ "spring-batch-intro.md", "whatsnew.md", "domain.md", "job.md", "step.md", "readersAndWriters.md", "processor.md", "scalability.md", "repeat.md", "retry.md", "testing.md", "common-patterns.md", "jsr-352.md", "spring-batch-integration.md", "monitoring-and-metrics.md", "appendix.md", "schema-appendix.md", "transaction-appendix.md", "glossary.md" ], initialOpenGroupIndex: 0 } ], "/spring-amqp/": [ { title: "Spring AMQP 文档", sidebarDepth: 2, collapsable: false, children: ["spring-amqp.md"], initialOpenGroupIndex: 0 } ], "/spring-credhub/": [ { title: "Spring CredHub 文档", sidebarDepth: 2, collapsable: false, children: ["spring-credhub.md"], initialOpenGroupIndex: 0 } ], "/spring-flo/": [ { title: "Spring Flo 文档", sidebarDepth: 2, collapsable: false, children: ["spring-flo.md"], initialOpenGroupIndex: 0 } ], "/spring-for-apache-kafka/": [ { title: "Spring for Apache Kafka 文档", sidebarDepth: 2, collapsable: false, children: ["spring-kafka.md"], initialOpenGroupIndex: 0 } ], "/spring-ldap/": [ { title: "Spring for Apache Kafka 文档", sidebarDepth: 2, collapsable: false, children: ["spring-ldap.md"], initialOpenGroupIndex: 0 } ], "/spring-shell/": [ { title: "Spring Shell 文档", sidebarDepth: 2, collapsable: false, children: ["spring-shell.md"], initialOpenGroupIndex: 0 } ], "/spring-statemachine/": [ { title: "Spring Statemachine 文档", sidebarDepth: 2, collapsable: false, children: ["spring-statemachine.md"], initialOpenGroupIndex: 0 } ], "/spring-vault/": [ { title: "Spring Vault 文档", sidebarDepth: 2, collapsable: false, children: ["spring-vault.md"], initialOpenGroupIndex: 0 } ], "/spring-web-flow/": [ { title: "Spring Web Flow 文档", sidebarDepth: 2, collapsable: false, children: [ "preface.md", "introduction.md", "whatsnew.md", "defining-flows.md", "el.md", "views.md", "actions.md", "flow-managed-persistence.md", "flow-security.md", "flow-inheritance.md", "system-setup.md", "spring-mvc.md", "spring-js.md", "spring-faces.md", "testing.md", "field-mappings.md" ], initialOpenGroupIndex: 0 } ], "/spring-web-services/": [ { title: "Spring Web Services 文档", sidebarDepth: 2, collapsable: false, children: ["spring-web-service.md"], initialOpenGroupIndex: 0 } ], // fallback "/": [ { title: "Spring 文档", // 必要的 // path: '/', // 可选的, 标题的跳转链接,应为绝对路径且必须存在 collapsable: false, // 可选的, 默认值是 true, sidebarDepth: 1, // 可选的, 默认值是 1 children: [""] }, { title: "介绍", sidebarDepth: 2, collapsable: false, children: [ "why-spring.md", "introducing-spring-boot.md", "quickstart.md" ], initialOpenGroupIndex: 0 }, { title: "教程", sidebarDepth: 2, collapsable: false, children: [ "system-requirements.md", "installing.md", "initializr.md" ], initialOpenGroupIndex: 0 }, { title: "编辑器", sidebarDepth: 2, collapsable: false, children: [ "vscode_java.md", "intellij_idea.md" ], initialOpenGroupIndex: 0 }, { title: "代码案例", sidebarDepth: 2, collapsable: false, children: [ "getting-started_first-application.md", "rest-service.md", "consuming-rest.md" ], initialOpenGroupIndex: 0 } ] } } } } };