A backend for Asciidoctor used to produce Spring styled HTML

Overview

Asciidoctor Spring Backends

Alternative HTML conversion for Asciidoctor with a Spring "look and feel".

Maven build integration

You can use the Asciidoctor Maven plugin to generate your documentation.

<plugin>
	<groupId>org.asciidoctor</groupId>
	<artifactId>asciidoctor-maven-plugin</artifactId>
	<version>2.1.0</version>
	<executions>
		<execution>
			<id>generate-html-documentation</id>
			<phase>prepare-package</phase>
			<goals>
				<goal>process-asciidoc</goal>
			</goals>
			<configuration>
				<backend>spring-html</backend>
			</configuration>
		</execution>
	</executions>
	<dependencies>
		<dependency>
			<groupId>io.spring.asciidoctor.backends</groupId>
			<artifactId>spring-asciidoctor-backends</artifactId>
			<version>${spring-asciidoctor-backends.version}</version>
		</dependency>
	</dependencies>
</plugin>

Gradle build integration

You can use the Asciidoctor Gradle plugin to generate your documentation.

plugins {
	id 'org.asciidoctor.jvm.convert' version '3.1.0'
}

repositories {
	mavenCentral()
	maven {
		url "https://repo.spring.io/release"
	}
}

configurations {
	asciidoctorExtensions
}

dependencies {
	asciidoctorExtensions "io.spring.asciidoctor.backends:spring-asciidoctor-backends:${spring-asciidoctor-backends.version}"
}

asciidoctor {
	configurations "asciidoctorExtensions"
	sourceDir "src/asciidoc"
	outputOptions {
		backends "spring-html"
	}
}

Features

Spring Look and Feel

Spring specific stylesheets and javascript are produced with each HTML file that provides a Spring "look and feel". As much as possible, styling mirrors the look of spring.io.

One minor difference between the documentation output and spring.io is the choice of fonts. Since documentation tends to contain more content, we use system default fonts rather than "Metropolis" or "Open Sans". This aligns with GitHub’s font choice and tends to produce better results then using a custom font.

Responsive Design

Generated HTML includes responsive selectors that mean it should work well across a range of devices. We specifically optimize for desktop, tablet (both horizontal and vertical orientation) and smartphone.

Graceful Javascript Degradation

Documentation pages generated by this backend should render correctly even if Javascript has been disabled. Some features will not appear if the user has disabled Javascript.

For HTML output, if the current page is not index.html, you automatically get a link to index.html. This link appears above the table of contents. For many projects, this link never appears, because that project’s build renders the documentation as index.html.

You can customize the destination of the "Back to Index" link by specifying a index-link attribute in your document. For example, the following attribute would link to https://spring.io:

:index-link: https://spring.io
Note
Please do use a link that readers might reasonably think would be an index page. (The canonical case is the project’s page on spring.io.)

Dark Mode

A "dark mode" switcher is included at the top of each page. By default the theme will match the users system preferences, but it can be switched easily. Dark mode settings are saved using local storage so that the user doesn’t need to change them on each reload.

Copy to Clipboard

Code blocks have an additional "Copy to clipboard" button that appears when the user hovers over the block. The unfolded (see below) version of the code text is always used when copying to the clipboard.

Tabs

Tab support is included in the site Javascript and can be used without needing the spring-asciidoctor-extensions-block-switch extension. The Javascipt post-processes Asciidoctor’s HTML output to collapse multiple blocks into one and provides tabs that can be used to switch between them.

To use tabs, one block must have the role="primary" attribute, and one or more blocks must have a role="secondary" attribute. The tabs are named using the block titles.

For example:

[source,xml,indent=0,role="primary"]
.Maven
----
<dependency>
    <groupId>com.example</groupId>
    <artifactId>some-library</artifactId>
    <version>1.2.3</version>
</dependency>
----

[source,indent=0,role="secondary"]
.Gradle
----
compile 'com.example:some-library:1.2.3'
----

You can also use blocks for more complex markup:

[primary]
.Maven
--
[source,xml,indent=0]
----
<dependency>
    <groupId>com.example</groupId>
    <artifactId>some-library</artifactId>
    <version>1.2.3</version>
</dependency>
----

TIP: XML uses angle brackets.
--

[secondary]
.Gradle
--
I can write things here.

[source,indent=0]
----
compile 'com.example:some-library:1.2.3'
----
--

Code Folding

Code folding allows non-pertinent sections of code to be hidden away for the majority of the time. The user can click on an "unfold code" button if they want to see the full code.

Code folding is particularly useful when code samples have been externalized. There’s often details needed to make the compiler happy that aren’t all that relevant to the documentation.

By default, all java imports will be automatically folded. Additional "fold" sections can also be defined using special @fold:on and @fold:off comments.

For example, the following Java file will fold-away the fields:

[source,java]
----
public class Example {

	// @fold:on
	private final String first;

	private final String second;
	// @fold:off

	public Example(String first, String second) {
		this.first = first;
		this.second = second;
	}

}
----

You can also include replacement text that will be displayed when the code is folded. For example, the following Java file will show a // getters / setters... comment when the code is folded:

[source,java]
----
public class Example {

	private String first;

	private String second;

	// @fold:on // getters / setters...
	public String getFirst() {
		return this.first;
	}

	public void setFirst(String first) {
		this.first = first;
	}

	public String getSecond() {
		return this.second;
	}

	public void setSecond(String second) {
		this.second = second;
	}
	// @fold:off

}
----

You can use the fold attribute if you want change the default settings. The attribute can be used on the document or the block. The attribute value is a space delimited list containing one or more of the following flags:

Flag Description

default

imports tags

all

Enable all folding

none

Disable all folding

imports

Fold import statements

tags

Fold @fold:on / @fold:off tags

You can prefix the flag with + or - at the block level if you want to override a document setting.

Code Chomping

Code chomping allows specific parts of a Java code block to be removed. It’s mainly useful if you have externalized code files with details that are only required to make the compiler happy.

By default, chomping will remove parts of the code that match specific comments as well as @formatter:on/@formatter:off comments. You can also turn on addition chomping for headers, packages

The following chomp comments are supported:

Comment Description

/* @chomp:line <replacement> */

Chomps the rest of the line and adds the replacement

// @chomp:file

Chomps the remainder of the file

/**/

Chomps the rest of the line and adds ...

For example, the following file:

[source,java]
----
public class Example {

	private final Something something;

	private final Other other;

	public Example() {
		this.something = /**/ new MockSomething();
		this.other = /* @chomp:line ... your thing */ new MyThing();
	}

}
----

Will be rendered as:

public class Example {

	private final Something something;

	private final Other other;

	public Example() {
		this.something = ...
		this.other = ... your thing
	}

}

You can use the chomp attribute if you want change the default settings. The attribute can be used on the document or the block. The attribute value is a space delimited list containing one or more of the following flags:

Flag Description

default

tags formatters

all

Enable all chomping

none

Disable all chomping

headers

Chomp any file headers (up to package)

packages

Chomp the package declaration or replaces it with chomp_package_replacement

tags

Chomp on the comment tags listed above

You can prefix the flag with + or - at the block level if you want to override a document setting.

The chomp_package_replacement attribute can be set on the block or the document if you want to replace the package rather than remove it. For example, the following document will replace all package declarations with package com.example;:

= My Document
:chomp_package_replacement: com.example

Contributing

If you’re looking to contribute to this project, or you’re just trying to navigate the code please take a look at the CONTRIBUTING file.

License

With the exception of asciidoctor.css, use of this software is granted under the terms of the Apache License, Version 2.0 (Apache-2.0). See LICENSE.txt to find the full license text.

The contents of src/main/css/asciidoctor.css as been derived from gitlab.com/antora/antora-ui-default CSS and as such use of this file alone is granted under the terms of the Mozilla Public License Version 2.0 (MPL-2.0).

Comments
  • Code blocks are rendered with inconsistent font sizes on mobile

    Code blocks are rendered with inconsistent font sizes on mobile

    The font size used here matches the rest of the text

    IMG_6270

    The font size used here is larger for some reason

    IMG_6269

    Expanding the imports results in a mixture of font sizes in the same block

    IMG_6271

    type: bug 
    opened by wilkinsona 8
  • FontAwesome icons not rendered correctly

    FontAwesome icons not rendered correctly

    In contrast to the standard HTML backend, our generated documents are missing the directive to include the FontAwesome icon CSS file

    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
    

    There's code that sets the icons to be font-based by default, but also deactivates remote fonts (a line below). If we really want the latter, we'd have to ship FontAwesome CSS and fonts ourselves.

    opened by odrotbohm 6
  • Horizontal Scroolbar at the Bottom of the Navigation Pane

    Horizontal Scroolbar at the Bottom of the Navigation Pane

    When you scroll down the document, a horizontal scrollbar appears at the bottom of the navigation pane. An example: https://toedter.github.io/spring-hateoas-jsonapi/snapshot/reference/

    opened by toedter 3
  • Give priority to theme stored in localstorage

    Give priority to theme stored in localstorage

    This PR fix an issue applying dark mode forcely when prefers-color-scheme value is dark even though theme value is stored in localstorage.

    I change to use prefers-color-scheme value only if theme value is not stored in localstorage or is an invalid value.

    type: enhancement 
    opened by koyama-tagbangers 3
  • Images aren't loaded due to 404s

    Images aren't loaded due to 404s

    I think the images are being looked for in the wrong place. For example, on https://docs.spring.io/spring-boot/docs/2.5.0-SNAPSHOT/reference/htmlsingle/ there are 404s for a couple of SVGs:

    • https://docs.spring.io/spring-boot/docs/2.5.0-SNAPSHOT/reference/img/banner-logo.svg
    • https://docs.spring.io/spring-boot/docs/2.5.0-SNAPSHOT/reference/img/doc-background.svg

    I think the correct URLs are the following:

    • https://docs.spring.io/spring-boot/docs/2.5.0-SNAPSHOT/reference/htmlsingle/img/banner-logo.svg
    • https://docs.spring.io/spring-boot/docs/2.5.0-SNAPSHOT/reference/htmlsingle/img/doc-background.svg
    type: bug 
    opened by wilkinsona 3
  • Tab support incorrectly copies callouts from other blocks

    Tab support incorrectly copies callouts from other blocks

    Overview

    As mentioned in https://github.com/spring-projects/spring-framework/issues/29505 and https://github.com/spring-projects/spring-framework/commit/ac7d428a627e6dabbde500266eaeed4670e37bfb, tabs incorrectly include callouts from other blocks within a section of the generated documentation if some blocks use callouts and others do not.

    Related Issues

    • https://github.com/spring-projects/spring-framework/issues/29505
    type: bug 
    opened by sbrannen 2
  • Improve HighlightJS CSS for JSON

    Improve HighlightJS CSS for JSON

    In dark mode, only white for keys and blue for values, in light mode everything is black.

    It would be great if JSON would be a bit more "colorful", e.g. also render numbers in another color than strings.

    type: enhancement 
    opened by toedter 2
  • Table of contents stops woking after in Spring Boot after section 3.5

    Table of contents stops woking after in Spring Boot after section 3.5

    After this link the toc stops highlighting https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#using-boot-spring-beans-and-dependency-injection

    type: bug 
    opened by philwebb 2
  • Bump terser from 5.10.0 to 5.14.2

    Bump terser from 5.10.0 to 5.14.2

    Bumps terser from 5.10.0 to 5.14.2.

    Changelog

    Sourced from terser's changelog.

    v5.14.2

    • Security fix for RegExps that should not be evaluated (regexp DDOS)
    • Source maps improvements (#1211)
    • Performance improvements in long property access evaluation (#1213)

    v5.14.1

    • keep_numbers option added to TypeScript defs (#1208)
    • Fixed parsing of nested template strings (#1204)

    v5.14.0

    • Switched to @​jridgewell/source-map for sourcemap generation (#1190, #1181)
    • Fixed source maps with non-terminated segments (#1106)
    • Enabled typescript types to be imported from the package (#1194)
    • Extra DOM props have been added (#1191)
    • Delete the AST while generating code, as a means to save RAM

    v5.13.1

    • Removed self-assignments (varname=varname) (closes #1081)
    • Separated inlining code (for inlining things into references, or removing IIFEs)
    • Allow multiple identifiers with the same name in var destructuring (eg var { a, a } = x) (#1176)

    v5.13.0

    • All calls to eval() were removed (#1171, #1184)
    • source-map was updated to 0.8.0-beta.0 (#1164)
    • NavigatorUAData was added to domprops to avoid property mangling (#1166)

    v5.12.1

    • Fixed an issue with function definitions inside blocks (#1155)
    • Fixed parens of new in some situations (closes #1159)

    v5.12.0

    • TERSER_DEBUG_DIR environment variable
    • @​copyright comments are now preserved with the comments="some" option (#1153)

    v5.11.0

    • Unicode code point escapes (\u{abcde}) are not emitted inside RegExp literals anymore (#1147)
    • acorn is now a regular dependency
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    type: dependency-upgrade 
    opened by dependabot[bot] 1
  • Add convention based include code support

    Add convention based include code support

    We'd like an include::code:SomeFile block macro that will allow us to import source files using convention based paths and detect different languages.

    type: enhancement 
    opened by philwebb 1
  • Wrong URL for banner-logo.svg in Safari

    Wrong URL for banner-logo.svg in Safari

    For example, the Spring Boot docs are trying to load https://docs.spring.io/spring-boot/docs/2.5.0-SNAPSHOT/reference/img/banner-logo.svg. The correct URL is https://docs.spring.io/spring-boot/docs/2.5.0-SNAPSHOT/reference/htmlsingle/img/banner-logo.svg. This looks like a subset of https://github.com/spring-io/spring-asciidoctor-backends/issues/11.

    type: bug 
    opened by wilkinsona 1
  • Bump json5 from 2.2.1 to 2.2.3

    Bump json5 from 2.2.1 to 2.2.3

    Bumps json5 from 2.2.1 to 2.2.3.

    Release notes

    Sourced from json5's releases.

    v2.2.3

    v2.2.2

    • Fix: Properties with the name __proto__ are added to objects and arrays. (#199) This also fixes a prototype pollution vulnerability reported by Jonathan Gregson! (#295).
    Changelog

    Sourced from json5's changelog.

    v2.2.3 [code, diff]

    v2.2.2 [code, diff]

    • Fix: Properties with the name __proto__ are added to objects and arrays. (#199) This also fixes a prototype pollution vulnerability reported by Jonathan Gregson! (#295).
    Commits
    • c3a7524 2.2.3
    • 94fd06d docs: update CHANGELOG for v2.2.3
    • 3b8cebf docs(security): use GitHub security advisories
    • f0fd9e1 docs: publish a security policy
    • 6a91a05 docs(template): bug -> bug report
    • 14f8cb1 2.2.2
    • 10cc7ca docs: update CHANGELOG for v2.2.2
    • 7774c10 fix: add proto to objects and arrays
    • edde30a Readme: slight tweak to intro
    • 97286f8 Improve example in readme
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    type: dependency-upgrade 
    opened by dependabot[bot] 0
  • Bump decode-uri-component from 0.2.0 to 0.2.2

    Bump decode-uri-component from 0.2.0 to 0.2.2

    Bumps decode-uri-component from 0.2.0 to 0.2.2.

    Release notes

    Sourced from decode-uri-component's releases.

    v0.2.2

    • Prevent overwriting previously decoded tokens 980e0bf

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.1...v0.2.2

    v0.2.1

    • Switch to GitHub workflows 76abc93
    • Fix issue where decode throws - fixes #6 746ca5d
    • Update license (#1) 486d7e2
    • Tidelift tasks a650457
    • Meta tweaks 66e1c28

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.0...v0.2.1

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    type: dependency-upgrade 
    opened by dependabot[bot] 0
  • site.js contains reserved word 'class'

    site.js contains reserved word 'class'

    site.js cannot be processed using HtmlUnit due to the following:

    Caused by: net.sourceforge.htmlunit.corejs.javascript.EvaluatorException: identifier is a reserved word: class
    
    type: bug 
    opened by philwebb 1
  • Allow custom root CSS file

    Allow custom root CSS file

    I'd like to make local adjustments to the CSS provided out of the box and though I could do so by declaring <stylesheet>foo.css</stylesheet> in my Maven build. foo.css would then @import "site.css"; to pick up the styles defined by the backend and contain a couple of customizations. However, despite the manual definition of the stylesheet, the HTML rendered still refers to site.css, i.e. it doesn't seem to honor the manual override.

    opened by odrotbohm 0
  • Tabs with missing titles are hard to diagnose

    Tabs with missing titles are hard to diagnose

    When a tab as no title, the Javascript fails with an error like the following:

    TypeError: null is not an object (evaluating 't.querySelector(".title").textContent')
    

    It would be good to catch these missing titles at build time if we can. Failing that, it would be good to report a better error so that it's easier to identify the places where the titles are missing.

    /cc @artembilan @Buzzardo

    opened by wilkinsona 0
  • Opening an anchored link scrolls to the wrong place in Safari on macOS

    Opening an anchored link scrolls to the wrong place in Safari on macOS

    I'm using Safari 15.5 on macOS Monterey (12.4). When I open a link like https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto.webserver.use-behind-a-proxy-server, the docs scroll to the wrong place:

    Data Properties section in the appendix

    Chrome and Firefox on the same OS are not affected so it appears to be a WebKit/Safari-specific problem.

    type: bug 
    opened by wilkinsona 1
Releases(v0.0.3)
  • v0.0.3(Feb 5, 2022)

  • v0.0.2(Jun 10, 2021)

    :star: New Features

    • Give priority to theme stored in localstorage #23

    :beetle: Bug Fixes

    • Dark/Light Mode Toggle + Restrictive Browser Permissions #50

    :heart: Contributors

    We'd like to thank all the contributors who worked on this release!

    Source code(tar.gz)
    Source code(zip)
  • v0.0.1(May 20, 2021)

    :star: New Features

    • Add PDF backend #45
    • Prevent words from splitting #39
    • Make within visually distinct #36
    • Support chomping of @SuppressWarnings #33
    • Improve HighlightJS CSS for JSON #31
    • Support anchor rewrites #29

    :beetle: Bug Fixes

    • Deep headings are too small #42
    • Table wrapping can look odd #41
    • Add more space around code type text #40
    • Wrong URL for banner-logo.svg in Safari #38
    • ArrayIndexOutOfBoundsException when turning folding on and off #26

    :notebook_with_decorative_cover: Documentation

    • Wrong Spring Maven repo in README.adoc #27

    :hammer: Dependency Upgrades

    • Upgrade to nohttp 0.0.7 #44
    • Upgrade to Gradle 7 #43
    Source code(tar.gz)
    Source code(zip)
  • v0.0.1-M1(Mar 19, 2021)

    :star: New Features

    • Provide mobile toc #2

    :beetle: Bug Fixes

    • Chomping formatter comments can leave blank lines #21
    • Table of contents stops woking after in Spring Boot after section 3.5 #20
    • Retain quotes on relative URLs in CSS #19
    • toc.js errors when null is passed to isInViewport #17
    • Long tables overflow on mobile devices #15
    • Theme switcher appearance is broken on Safari #14
    • Images aren't loaded due to 404s #11
    • ListingContentConverters throws a NullPointerException when converting a block with null content #10
    • Code blocks are rendered with inconsistent font sizes on mobile #9

    :heart: Contributors

    We'd like to thank all the contributors who worked on this release!

    Source code(tar.gz)
    Source code(zip)
Owner
Spring IO
Spring IO
循序渐进,学习Spring Boot、Spring Boot & Shiro、Spring Batch、Spring Cloud、Spring Cloud Alibaba、Spring Security & Spring Security OAuth2,博客Spring系列源码:https://mrbird.cc

Spring 系列教程 该仓库为个人博客https://mrbird.cc中Spring系列源码,包含Spring Boot、Spring Boot & Shiro、Spring Cloud,Spring Boot & Spring Security & Spring Security OAuth2

mrbird 24.8k Jan 6, 2023
Facsimile - Copy Your Most Used Text to Clipboard Easily with Facsimile!. It Helps You to Store You Most Used Text as a Key, Value Pair and Copy it to Clipboard with a Shortcut.

Facsimile An exact copy of Your Information ! Report Bug · Request Feature Table of Contents About The Project Built With Getting Started Installation

Sri lakshmi kanthan P 1 Sep 12, 2022
RAML to HTML documentation generator.

A simple RAML to HTML documentation generator, written for Node.js, with theme support. RAML version support raml2html 4 and higher only support RAML

null 1.1k Nov 27, 2022
Student management system with sql database,Jsp & Java (Front end with HTML & CSS)

studentmanagementsystem Student management system with sql database,Jsp & Java (Front end with HTML & CSS) what this basically is that it integrates t

Isaac 7 Oct 3, 2022
Spring Boot microservices app with Spring Cloud, Robust and resilient backend managing e-Commerce app

e-Commerce-boot μServices Important Note: This project's new milestone is to move The whole system to work on Kubernetes, so stay tuned. Introduction

Selim Horri 65 Dec 23, 2022
该仓库中主要是 Spring Boot 的入门学习教程以及一些常用的 Spring Boot 实战项目教程,包括 Spring Boot 使用的各种示例代码,同时也包括一些实战项目的项目源码和效果展示,实战项目包括基本的 web 开发以及目前大家普遍使用的线上博客项目/企业大型商城系统/前后端分离实践项目等,摆脱各种 hello world 入门案例的束缚,真正的掌握 Spring Boot 开发。

Spring Boot Projects 该仓库中主要是 Spring Boot 的入门学习教程以及一些常用的 Spring Boot 实战项目教程,包括 Spring Boot 使用的各种示例代码,同时也包括一些实战项目的项目源码和效果展示,实战项目包括基本的 web 开发以及目前大家普遍使用的前

十三 4.5k Dec 30, 2022
A spring cloud infrastructure provides various of commonly used cloud components and auto-configurations for high project consistency

A spring cloud infrastructure provides various of commonly used cloud components and auto-configurations for high project consistency.

Project-Hephaestus 2 Feb 8, 2022
Repository with Backend code for InnoTutor project. It is written on Java/Spring.

Backend ᅠ ᅠ Developers: Daniil Livitn, Roman Soldatov Contents Requirements API Database Google credentials Hosting and CI How to install locally Code

InnoTutor 20 Sep 17, 2022
In this course, we will learn how to build a complete full-stack web application using Spring boot as backend and React (React Hooks) as frontend

In this course, we will learn how to build a complete full-stack web application using Spring boot as backend and React (React Hooks) as frontend. We will use MySQL database to store and retrieve the data.

Ramesh Fadatare 43 Dec 22, 2022
Frontend : React , Backend : Spring boot

React(Front) + Spring Boot(Back) 작업 하기 앞서, React와 Spring Boot는 각각 다른 서버에서 돌아가기 때문에, 연동시 Front에 문제가 생기면 Back까지 문제가 생길 수 있다. 하지만, Spring Boot에서 React와 같

심재철 2 Jan 9, 2022
Spring MVC backend written in Java for my wiki/blog

blog-api Spring MVC backend written in Java for my wiki/blog. Why Spring? Spring MVC and other parts of the Spring framework are still immensely popul

null 0 Mar 16, 2022
İnnova-Patika Java Spring Bootcamp - > Bitirme Projesi -> Backend

İnnova-Patika Java Spring Bootcamp - > Bitirme Projesi -> Backend

Murat Ali KIŞTAN 6 May 1, 2022
Spring boot backend for marble guessing game inspired by Squid Game TV series.

Back-end for marble guessing game inspired by Squid Game TV series. Built with Spring-boot and WebSocket.

Zaid 4 Sep 3, 2022
Bersama Java Spring membangun negeri (Backend)

Hal - hal yang ada pada Java Spring Application Context Menggunakan IoC (Inversion of Control) / Container. Singleton : Object yang hanya dibuat 1 kal

Pradana 2 Jul 11, 2022
Application for creating blog posts, developed with Java using Spring Framework for backend and Angular along with PrimeNG Library for frontend development.

Application for creating blog posts, developed with Java using Spring Framework for backend and Angular along with PrimeNG Library for frontend development.

Áureo Carmelino 10 Nov 27, 2022
一个涵盖六个专栏:Spring Boot 2.X、Spring Cloud、Spring Cloud Alibaba、Dubbo、分布式消息队列、分布式事务的仓库。希望胖友小手一抖,右上角来个 Star,感恩 1024

友情提示:因为提供了 50000+ 行示例代码,所以艿艿默认注释了所有 Maven Module。 胖友可以根据自己的需要,修改 pom.xml 即可。 一个涵盖六个主流技术栈的正经仓库: 《Spring Boot 专栏》 《Spring Cloud Alibaba 专栏》 《Spring Clou

芋道源码 15.7k Dec 31, 2022
参考 DDD/Clean Architecture 设计理念,整合 Spring Boot/Spring Security/Mybatis Plus/Vavr 的 Spring Realworld 应用案例

Demo · 更多项目 · 参考资料 ms-spring-ddd-examples Unified Domain-driven Layered Architecture for MicroService Apps,试图探索一套切实可行的应用架构规范,可以复制、可以理解、可以落地、可以控制复杂性的指导

王下邀月熊 19 Sep 23, 2022
Spring Kurulumundan Başlayarak, Spring IOC ve Dependency Injection, Hibernate, Maven ve Spring Boot Konularına Giriş Yapıyoruz.

Spring Tutorial for Beginners File Directory Apache Tomcat Apache Tomcat - Eclipse Bağlantısı Spring Paketlerinin İndirilmesi ve Projeye Entegrasyonu

İbrahim Can Erdoğan 11 Apr 11, 2022
Spring Boot JdbcTemplate example with SQL Server: CRUD Rest API using Spring Data JDBC, Spring Web MVC

Spring Boot JdbcTemplate example with SQL Server: Build CRUD Rest API Build a Spring Boot CRUD Rest API example that uses Spring Data Jdbc to make CRU

null 7 Dec 20, 2022