{"id":27813552,"url":"https://github.com/marceloleite2604/cor-bean-processor-spring-boot-autoconfiguration","last_synced_at":"2026-05-10T19:03:02.235Z","repository":{"id":60681392,"uuid":"542279737","full_name":"MarceloLeite2604/cor-bean-processor-spring-boot-autoconfiguration","owner":"MarceloLeite2604","description":"A Spring Boot autoconfiguration to set up COR Bean Processor.","archived":false,"fork":false,"pushed_at":"2022-12-09T14:42:00.000Z","size":217,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-01T12:02:20.698Z","etag":null,"topics":["chain-of-responsibility","java","spring","spring-autoconfiguration","spring-beans","spring-boot"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MarceloLeite2604.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-09-27T20:36:45.000Z","updated_at":"2023-01-05T19:07:21.000Z","dependencies_parsed_at":"2023-01-25T22:01:48.653Z","dependency_job_id":null,"html_url":"https://github.com/MarceloLeite2604/cor-bean-processor-spring-boot-autoconfiguration","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarceloLeite2604%2Fcor-bean-processor-spring-boot-autoconfiguration","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarceloLeite2604%2Fcor-bean-processor-spring-boot-autoconfiguration/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarceloLeite2604%2Fcor-bean-processor-spring-boot-autoconfiguration/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarceloLeite2604%2Fcor-bean-processor-spring-boot-autoconfiguration/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MarceloLeite2604","download_url":"https://codeload.github.com/MarceloLeite2604/cor-bean-processor-spring-boot-autoconfiguration/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251871529,"owners_count":21657468,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chain-of-responsibility","java","spring","spring-autoconfiguration","spring-beans","spring-boot"],"created_at":"2025-05-01T12:01:44.759Z","updated_at":"2026-05-10T19:03:02.177Z","avatar_url":"https://github.com/MarceloLeite2604.png","language":"Java","funding_links":["https://www.paypal.com/donate/?hosted_button_id=C6LPXWCHGRUVQ"],"categories":[],"sub_categories":[],"readme":"# Chain Of Responsibility (COR) Bean Processor Spring Boot Starter\n\n**TL;DR:** You focus on the logic while we handle the chain!\n\n![A screen capture presenting a sample code diff with the same project with and without COR Bean Processor library.](./documentation/images/image-01.png)\n\n# What is this about?\nCOR Bean Processor is a library to assist creating [Chain Of Responsibility design patterns](https://en.wikipedia.org/wiki/Chain-of-responsibility_pattern) on Spring\nBoot projects. It automatically chain all links together, reducing the amount of non-business code required in the project.\n\n# How to use it?\n\n1. Be sure to add [Spring Boot](https://spring.io/guides/gs/spring-boot/) to\n   your project.\n2. Add COR Bean Processor Spring Boot Starter on your project.\n    1. For Maven projects add the following on your `pom.xml` file\n       under `\u003cdependencies\u003e` tag.\n   ```xml\n   \u003cdependency\u003e\n     \u003cgroupId\u003ecom.figtreelake\u003c/groupId\u003e\n     \u003cartifactId\u003ecor-bean-processor-spring-boot-starter\u003c/artifactId\u003e\n     \u003cversion\u003e1.0\u003c/version\u003e\n   \u003c/dependency\u003e\n   ```\n\n    2. For Gradle projects add the following on your `build.gradle` file\n       under `dependencies` declaration.\n   ```groovy\n   implementation 'com.figtreelake:cor-bean-processor-spring-boot-starter:1.0'\n   ```\n    3. You can check the latest version available\n       on [Maven Central repository](https://mvnrepository.com/repos/central).\n3. Make your Chain Of Responsibility link classes implement [ChainLink][1]\n   interface.\n4. Add a [ChainLink][1] interface field on the class where ou need your chain and annotate it with either [@Autowired](https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/beans/factory/annotation/Autowired.html) or [@Inject](https://docs.oracle.com/javaee/6/api/javax/inject/Inject.html) (if you are using Javax Inject) \n5. That is it! COR Bean Processor will automatically create the chain and Spring Boot will inject its first list into the target class.\n\nIf you need further details about implementation, feel free to check [the examples repository](https://github.com/MarceloLeite2604/cor-bean-processor-examples). \n\n# FAQ\n\n***Q:** Does COR Bean Processor handles multiple chains?*\n\n**A:** Yes! As long as each [ChainLink][1] implementation declares a different type on its template, the library will concatenate each link group separately. For more details about it check [multiple chains project inside the example repository](https://github.com/MarceloLeite2604/cor-bean-processor-examples/tree/main/multiple-chains-example).\n\n\u003cbr/\u003e\n\n***Q:** What if my links must be concatenated in a specific order?*\n\n**A:** You can annotate your links with [@Order](https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/core/annotation/Order.html). The library will respect the specification and chain links in the defined order. For more details check [ordered links inside the example repository](https://github.com/MarceloLeite2604/cor-bean-processor-examples/tree/main/chain-with-ordered-links-example). \n\n\u003cbr/\u003e\n\n***Q:** I need one link to be the first of my chain. Do I need to add [@Order](https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/core/annotation/Order.html) annotation on all my links?*\n\n**A:** No. Just add [@Primary](https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/context/annotation/Primary.html) annotation on your first link and the library will use it as the first chain element. For more details check [chain with primary link example](https://github.com/MarceloLeite2604/cor-bean-processor-examples/tree/main/chain-with-primary-link-example).\n\n## How can I contribute?\n\nTry out the library. If you like the outcome, give a star for its repository, share or talk about it with your IT friends and colleagues. This is a work I have been doing in my spare time and I really would like to see that people appreciate the time I have invested on it.\n\nIf you liked the project and *really* want to demonstrate your appreciation, you can send me a \"thank you\" coffee. 🙂\n\n[![Yellow PayPal Donation button with \"donate\" text written on it](https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif)](https://www.paypal.com/donate/?hosted_button_id=C6LPXWCHGRUVQ)\n\n## Sources\n\nThis library was implemented after\nreading [Spring Boot - Auto Configuration](https://docs.spring.io/spring-boot/docs/1.3.8.RELEASE/reference/html/using-boot-auto-configuration.html)\nand [Spring Boot Features - Developing Auto Configuration](https://docs.spring.io/spring-boot/docs/2.0.0.M3/reference/html/boot-features-developing-auto-configuration.html#boot-features-custom-starter)\ndocumentation sections.\n\nAlso, thanks to [Stéphane Nicoll](https://github.com/snicoll) and\nhis [spring-boot-master-auto-configuration](https://github.com/snicoll/spring-boot-master-auto-configuration)\nrepository which helped me understand the minor details necessary to create a\nSpring starter library.\n\n[1]: ./autoconfigure/src/main/java/com/figtreelake/corbeanprocessor/autoconfigure/link/ChainLink.java","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarceloleite2604%2Fcor-bean-processor-spring-boot-autoconfiguration","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarceloleite2604%2Fcor-bean-processor-spring-boot-autoconfiguration","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarceloleite2604%2Fcor-bean-processor-spring-boot-autoconfiguration/lists"}