Brutos Framework - Brutos Framework

Brutos Framework
VývojářiTechnologie UoU
První vydání17. května 2009
Stabilní uvolnění
2.0-rc3 / 14. srpna 2018; Před 2 roky (2018-08-14)
NapsánoJáva
Operační systémCross-platform
PlošinaVirtuální stroj Java
TypRámec aplikace
LicenceLicence Apache 2.0
webová stránkawww.brutosframework.com.br

The Aplikační rámec Brutos je řadič MVC napsaný v Javě. Navrženo ke snížení složitosti vývoje webu s konfigurovatelným mapováním, rozlišením zobrazení a podporou nahrávání a stahování souborů. Lze konfigurovat pomocí XML, anotací a CoC.

Rámec se řídí následujícími principy:

  • flexibilita;
  • uvolněná spojka a
  • produktivita.

Uvolněte stahování balíčků

Tým Brutos poskytuje balíčky vydání hostované v systému pro uvolňování souborů SourceForge v ZIP.

Každý balíček vydání obsahuje soubory JAR, dokumentaci, zdrojový kód a další informace.

Vydání Brutos si můžete stáhnout ze seznamu na sourceforge.síť/ projekty/ brutos/ soubory/ brutos/.

Artefakty úložiště Maven

Vyrábí se z nich řada artefaktů. Vše pod org.brandao groupId.

  • brutos-core: Hlavním artefaktem je potřeba vytvářet aplikace pomocí nativních API Brutos.
  • anotace brutos: Volitelný artefakt, který umožňuje vytváření aplikací pomocí anotací. Tento artefakt závisí na brutos-core.
  • brutos-web: Volitelný artefakt, který umožňuje vytváření webových aplikací. Tento artefakt závisí na brutos-core.

Oficiální úložiště je www.brutosframework.com.br/ Maven/2.

Jak konfigurovat?

Zaregistrujte posluchače v souboru web.xml

<listener>    <listener-class>org.brandao.brutos.web.ContextLoaderListener</listener-class></listener>

Zaregistrujte filtr v souboru web.xml

<filter>        <filter-name>Filtr rámce Brutos</filter-name>        <filter-class>org.brandao.brutos.web.http.BrutosRequestFilter</filter-class>    </filter>    <filter-mapping>        <filter-name>Filtr rámce Brutos</filter-name>        <url-pattern>*</url-pattern>        <dispatcher>ŽÁDOST</dispatcher>        <dispatcher>VPŘED</dispatcher>        <dispatcher>ZAHRNOUT</dispatcher>        <dispatcher>CHYBA</dispatcher>    </filter-mapping></filter>

Upozornění: Pokud používáte kontejner, který podporuje specifikaci Servlet 3.0, registrace ContextLoadListener a DispatcherServlet nebo BrutosRequestFilter není nutná. Budou automaticky zaregistrováni.

Zaregistrujte artefakty v pom.xml

...<dependencies>  <dependency>      <groupId>org. brandao</groupId>      <artifactId>brutos-core</artifactId>      <version>2,0-rc3</version>  </dependency>  <dependency>     <groupId>org. brandao</groupId>     <artifactId>brutos-web</artifactId>     <version>2,0-rc3</version>  </dependency>  <dependency>     <groupId>org. brandao</groupId>     <artifactId>anotace brutos</artifactId>     <version>2,0-rc3</version>  </dependency></dependencies>...

Vytvořte soubor brutos-config.xml v / WEB-INF.

<?xml version="1.0" encoding="UTF-8"?><řadiče  xmlns: xsi =„http://www.w3.org/2001/XMLSchema-instance“              xmlns =„http://www.brutosframework.com.br/schema/controllers“              xmlns: kontext =„http://www.brutosframework.com.br/schema/context“              xsi: schemaLocation ='   http://www.brutosframework.com.br/schema/controllers http://www.brutosframework.com.br/schema/controllers/brutos-controllers-1.1.xsd   http://www.brutosframework.com.br/schema/context http://www.brutosframework.com.br/schema/context/brutos-context-1.1.xsd   http://www.brutosframework.com.br/schema/web http://www.brutosframework.com.br/schema/web/brutos-web-1.1.xsd '></controllers>


Příklady

Webová služba

Metody:

URIMetoda HTTPMetoda
/ uživateléDOSTATUserWebService.list ()
/ uživateléPOŠTAUserWebService.add (uživatel)
/users/{user.id}DÁTUserWebService.update (uživatel)
/ users / {id}VYMAZATUserWebService.delete (celé číslo)

Ovladač:

@Ovladač@ AcceptRequestType(MediaTypes.APPLICATION_JSON)@ResponseType(MediaTypes.APPLICATION_JSON)@ResponseError(kód=HttpStatus.NENALEZENO, cílová=NotFoundException.třída)veřejnost třída UserWebService {    @Inject    soukromé UserService userService;    @Akce(„/ uživatelé“)    veřejnost Seznam<Uživatel> seznam() {        vrátit se tento.userService.seznam();    }    @Akce(„/ uživatelé“)    @RequestMethod(RequestMethodTypes.POŠTA)    @ResponseStatus(HttpStatus.VYTVOŘENO)    veřejnost prázdnota přidat(Uživatel uživatel) {        tento.userService.Uložit(uživatel);    }    @Akce(„/users/{user.id}“)    @RequestMethod(RequestMethodTypes.DÁT)    @ResponseStatus(HttpStatus.ŽÁDNÝ OBSAH)    veřejnost prázdnota Aktualizace(Uživatel uživatel) hodí NotFoundException {        -li (uživatel == nula) {            házet Nový NotFoundException();        }        tento.userService.Aktualizace(uživatel);    }    @Akce(„/ users / {id}“)    @RequestMethod(RequestMethodTypes.VYMAZAT)    @ResponseStatus(HttpStatus.ŽÁDNÝ OBSAH)    veřejnost prázdnota vymazat(Celé číslo id) hodí NotFoundException {        Uživatel E = tento.userService.odstranit(id);        -li (E == nula) {            házet Nový NotFoundException();        }    }}

Obsluha výjimek

Úroveň řadiče

@ResponseError(hodnota=HttpStatus.KONFLIKT,                důvod=„Porušení integrity dat“, cílová=DataIntegrityViolationException.třída)veřejnost třída ExampleController {     @Akce("/akce")   veřejnost prázdnota akce() hodí DataIntegrityViolationException{       ...   }}

Úroveň akce

veřejnost třída ExampleController{     @Akce("/akce")   @ResponseError(hodnota=HttpStatus.KONFLIKT,             důvod=„Porušení integrity dat“, cílová=DataIntegrityViolationException.třída)   veřejnost prázdnota akce() hodí DataIntegrityViolationException{       ...   }}

Metoda

veřejnost třída ExampleController{     @Akce("/akce")   veřejnost prázdnota akce() hodí MyBadDataException {       ...   }   @ResponseError(MyBadDataException.třída)   veřejnost WebActionResult myBadDataException(Vrhací výjimka, WebActionResult výsledek) {       výsledek           .setResponseStatus(HttpStatus.ŠPATNÝ POŽADAVEK)           .setView("errorView")           .přidat("výjimka", výjimka);       vrátit se výsledek;   }}

Výsledek sestavení akce

Ovladač

veřejnost třída IndexController {     veřejnost WebResultAction action1Action(WebResultAction výsledek) {      výsledek.addHeader("Typ obsahu", "text / html; charset = utf-8")            .setContentType(Tětiva.třída)            .setContent(„  test “);      vrátit se výsledek;   }    veřejnost WebResultAction action2Action (WebResultAction výsledek) {        výsledek.addHeader("Typ obsahu", "text / html; charset = utf-8")            .setView("můj pohled")            .přidat(„hodnota1“, BigDecimal.JEDEN);        vrátit se výsledek;    }}

Polymorfní mapování

Metody:

URIHttp metodametoda
/přidatPOŠTAExampleController.add (ovoce)

Ovladač

veřejnost třída ExampleController{    @Akce("/přidat")    @RequestMethod(RequestMethodTypes.POŠTA)    veřejnost prázdnota přidat(        @Žádný(            metaBean=@Základní(fazole="typ")            metaValues={                @MetaValue(název="jablko", cílová=Jablko.třída),                @MetaValue(název="oranžový", cílová=oranžový.třída)            }        )        Ovoce ovoce) {            ...    }}

Fazole

veřejnost abstraktní třída Ovoce {    ...}
veřejnost třída Jablko rozšiřuje Ovoce {   ...}
veřejnost třída oranžový rozšiřuje Ovoce {   ...}

Abstraktní akce

Mapování URI:

Ovladač / akceURIPohled
ExampleController/cesta/WEB-INF/views/view.jsp
ExampleController/cesta//WEB-INF/views/view.jsp

Ovladač

@Ovladač("/cesta", defaultAction="/")@Akce(hodnota="/", Pohled=@Pohled("Pohled"))veřejnost třída ExampleController{}

Pomocí šablony URI

Mapování URI:

Ovladač / akceURIPohled
ExampleController/ cesta / {uživatel}/WEB-INF/views/index/index.jsp
ExampleController.getUser (řetězec)/ path / {userId} / showUser/WEB-INF/views/index/getuser/index.jsp

Ovladač

@Ovladač(„/ cesta / {userId}“)veřejnost třída ExampleController{    @Akce(„/ showUser“)    veřejnost Uživatel getUser(Tětiva uživatelské ID) {        ...    }}

Nahrávání a stahování souborů

@Ovladač(„/ soubory“)veřejnost třída ExampleController {      @Akce("/")    @RequestMethod(RequestMethodTypes.POŠTA)    veřejnost prázdnota uploadAction(Soubor soubor) {         // soubor parametrů je dočasný soubor         ...    }    @Akce("/{název souboru:.*}")    @RequestMethod(RequestMethodTypes.DOSTAT)    veřejnost Soubor downloadAction(Tětiva název souboru) {        Soubor soubor = ...;        vrátit se soubor;    }}

Forma a zasedání

veřejnost třída PersonController{    @Akce("/Uložit")    veřejnost prázdnota saveAction(        @Základní(rozsah="zasedání") Uživatel loggerdUser, @Základní(fazole="osoba") Osoba osoba) {        ...    }}

Viz také

externí odkazy

Rezervovat