Brutos Framework - Brutos Framework
Vývojáři | Technologie UoU |
---|---|
První vydání | 17. května 2009 |
Stabilní uvolnění | 2.0-rc3 / 14. srpna 2018 |
Napsáno | Jáva |
Operační systém | Cross-platform |
Plošina | Virtuální stroj Java |
Typ | Rámec aplikace |
Licence | Licence Apache 2.0 |
webová stránka | www |
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
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
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:
URI | Metoda HTTP | Metoda |
---|---|---|
/ uživatelé | DOSTAT | UserWebService.list () |
/ uživatelé | POŠTA | UserWebService.add (uživatel) |
/users/{user.id} | DÁT | UserWebService.update (uživatel) |
/ users / {id} | VYMAZAT | UserWebService.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:
URI | Http metoda | metoda |
---|---|---|
/přidat | POŠTA | ExampleController.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č / akce | URI | Pohled |
---|---|---|
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č / akce | URI | Pohled |
---|---|---|
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) { ... }}