ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • java frameworks "simple-boot" open source project (자바 프레임워크)
    IT 2021. 3. 7. 21:42

    안녕하세요.

    java frameworks "simple-boot" open source project를 시작해보려 합니다.

    함께 참여, 성장하는 계기가 되었으면 좋겠습니다. 많은 참여 부탁 드립니다.

     

    github: https://github.com/visualkhh/simple-boot

    오픈 채팅: https://open.kakao.com/o/gMymrf1c

     - 언제든지 열려있으니 관심있으신 분들의 고견 및 참여 부탁드립니다.

     

     

    simple-boot [v1.0.0]

    애플리케이션 및 서비스를 최소의 요구 사항으로 생성할 수 있도록 도와줍니다.

    주요기능

    • 개발을 위해 획기적으로 빠르고 광범위하게 액세스할 수 있는 시작 경험을 제공합니다. 비지니스에만 집중하세요.

      • 객체관리 (생성, 라이프 사이클)
      • 디펜던시 인젝션 등..
    • 의존관계 설정으로만으로 추가 기능(modules)을 쉽고 빠르게 적용할수 있습니다.

    설치 및 시작

    참조 문서에는 자세한 설치 지침과 포괄적인 시작 가이드가 포함되어 있습니다.
    다음은 Java의 완전한 simple-boot 애플리케이션에 대한 간단한 티저입니다.

    • version: >= java8

    example project

    • 다음은 Java의 완전한 simple-boot 애플리케이션에 대한 간단한 web project 입니다.
      • gradle
        dependencies {
            implementation project(':simple')
            implementation project(':simple-db')
            implementation project(':simple-db-h2')
            implementation project(':simple-db-hibernate')
            implementation project(':simple-web')
            implementation project(':simple-web-thymeleaf')
            implementation project(':simple-web-netty')
        }
      • java
        public class ExampleApplication {
            public static void main(String[] args) {
                new SimpleApplication().run(ExampleApplication.class);
            }
        }
        @Controller
        public class TodoController {
            private final AdminService adminService;
            @Injection
            public TodoController(AdminService adminService) {
                this.userService = userService;
            }
            @GetMapping("/admins")
            public List<Admin> admins(Request request, Response response){
                return adminService.admins();
            }
            @PostMapping("/admin")
            public Serializable saveAdmin(Request request, Response response) throws ProcessingException {
                Admin admin = request.body(Admin.class);
                return adminService.save(admin);
            }
            @GetMapping("/")
            public View index(Request request, Response response){
                View view = new View("views/index.html");
                view.put("name", "demo page");
                return view;
            }
        }
        @Service
        public class AdminService {
            private DatabaseAccessor databaseAccessor;
            @Injection
            public AdminService(DatabaseAccessor databaseAccessor) {
                this.databaseAccessor = databaseAccessor;
            }
            @Transactional
            public Serializable save(Admin admin) {
                return databaseAccessor.save(admin);
            }
            @Transactional
            public List<Admin> admins() {
                return databaseAccessor.resultList(Admin.class);
            }
        }

    Modules

    • cores
      • simple [core]
    • dbs
      • simple-db [core]
        • simple-db-h2
        • simple-db-hibernate
    • webs
      • simple-web [core]
        • simple-web-thymeleaf
        • simple-web-netty

         

    Modules 추가

    • package 위치: com.simple.boot.{모듈이름}

    • public class 모듈이름 extends Starter { ... }

    • @PostConstruct Method쪽 구동 로직 구현.

      @Config
      public class ModuleStarter extends Starter {
        private final ModuleConfig config;
        private final SimstanceManager simstanceManager;
        @Injection
        public ModuleStarter(SimstanceManager simstanceManager, ModuleConfig config) {
            this.simstanceManager = simstanceManager;
            this.config = config;
        }
        @PostConstruct
        public void init() {
          // something...
        }
      }
      @Config
      public class ModuleConfig {
         // something... public Map<String, Object> property;
          @Injection
          public ModuleConfig(ConfigLoader configLoader) {
              configLoader.map("module", this);
          }
      }

    구현체 interface (Type 으로 구성필요한 항목)

    • simple
      • com.simple.boot.transaction.TransactionManager
        • 트렌젝션 제어
    • simple-db
      • com.simple.boot.db.DatabaseAccessor
        • 데이터베이스 접근 제어
    • simple-web
      • com.simple.boot.web.server.WebServer
        • 웹서버
      • com.simple.boot.web.view.ViewResolver
        • 뷰엔진

    도움 받기

    • 추가 Modules
      • 같이 만들어 나갈 개발자분 참여가 필요합니다.

    보고된 문제

    • 많은 참여가 필요합니다.

    License

    • simple-boot is Open Source software released under the Apache 2.0 license.
    • visualkhh@gmail.com

    댓글

Designed by Tistory.