Brutos Framework - Brutos Framework

Brutos Framework
ӘзірлеушілерUoU технологиясы
Бастапқы шығарылым2009 жылғы 17 мамыр
Тұрақты шығарылым
2.0-rc3 / 14 тамыз 2018 ж; 2 жыл бұрын (2018-08-14)
ЖазылғанJava
Операциялық жүйеКросс-платформа
ПлатформаJava виртуалды машинасы
ТүріҚолдану негіздері
ЛицензияApache лицензиясы 2.0
Веб-сайтwww.брутосрамка жұмысы.com.br

The Brutos қолдану шеңбері Java-да жазылған MVC контроллері. Конфигурацияланатын кескінмен, ажыратымдылықты қарап шығумен, сонымен қатар файлдарды жүктеу мен жүктеуді қолдайтын веб-дамудың күрделілігін төмендетуге арналған. XML, аннотациялар және CoC көмегімен конфигурациялауға болады.

Негіздеме төмендегі принциптерге негізделген:

  • икемділік;
  • бос муфталар және
  • өнімділік.

Пакеттік жүктемелерді шығарыңыз

Brutos командасы SourceForge файлдарын жіберу жүйесінде ZIP-де орналастырылған шығарылым пакеттерін ұсынады.

Әр шығарылым бумасында JAR, құжаттама, бастапқы код және басқа ақпарат бар.

Сіз Brutos шығарылымдарын мына тізімнен жүктей аласыз sourceforge.желі/ жобалар/ брутос/ файлдар/ брутос/.

Maven репозиторийі

Олар бірқатар артефактілер шығарады. Барлығы org.brandao groupId.

  • брутос-ядро: Негізгі артефакт, Brutos native API интерфейсін қолданып бағдарламаларды құру қажет.
  • брутос-аннотация: Аннотацияларды қолдану арқылы қосымшаларды құруға мүмкіндік беретін қосымша артефакт. Бұл артефакт брутос-ядроға байланысты.
  • brutos-web: Веб-қосымшаларды құруға мүмкіндік беретін қосымша артефакт. Бұл артефакт брутос-ядроға байланысты.

Ресми репозиторий болып табылады www.брутосрамка жұмысы.com.br/ maven/2.

Қалай конфигурациялау керек?

Тыңдаушыны web.xml сайтына тіркеңіз

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

Сүзгіні web.xml файлына тіркеңіз

<filter>        <filter-name>Brutos Framework сүзгісі</filter-name>        <filter-class>org.brandao.brutos.web.http.BrutosRequestFilter</filter-class>    </filter>    <filter-mapping>        <filter-name>Brutos Framework сүзгісі</filter-name>        <url-pattern>*</url-pattern>        <dispatcher>СҰРАУ</dispatcher>        <dispatcher>АЛҒА</dispatcher>        <dispatcher>ҚОСЫЛАДЫ</dispatcher>        <dispatcher>ҚАТЕ</dispatcher>    </filter-mapping></filter>

Назар аударыңыз: егер сіз Servlet 3.0 сипаттамасын қолдайтын контейнерді қолдансаңыз, ContextLoadListener және DispatcherServlet немесе BrutosRequestFilter тіркеу қажет емес. Олар автоматты түрде тіркеледі.

Жәдігерлерді pom.xml файлына тіркеңіз

...<dependencies>  <dependency>      <groupId>org.brandao</groupId>      <artifactId>брутос-ядро</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>брутос-аннотация</artifactId>     <version>2.0-rc3</version>  </dependency></dependencies>...

/ WEB-INF ішінде brutos-config.xml файлын жасаңыз.

<?xml version="1.0" encoding="UTF-8"?><контроллерлер  xmlns: xsi ='http://www.w3.org/2001/XMLSchema-instance'              xmlns ='http://www.brutosframework.com.br/schema/controllers'              xmlns: контекст ='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>


Мысалдар

Веб-қызмет

Әдістері:

URIHTTP әдісіӘдіс
/ пайдаланушыларАЛUserWebService.list ()
/ пайдаланушыларПОСТUserWebService.add (Пайдаланушы)
/users/{user.id}ҚОЙЫҢЫЗUserWebService.update (Пайдаланушы)
/ users / {id}ЖОЮUserWebService.delete (бүтін сан)

Контроллер:

@Controller@AcceptRequestType(MediaTypes.APPLICATION_JSON)@ResponseType(MediaTypes.APPLICATION_JSON)@ResponseError(код=HttpStatus.ТАБЫЛМАДЫ, мақсат=NotFoundException.сынып)қоғамдық сынып UserWebService {    @Inject    жеке UserService userService;    @ Әрекет(«/ пайдаланушылар»)    қоғамдық Тізім<Пайдаланушы> тізім() {        қайту бұл.userService.тізім();    }    @ Әрекет(«/ пайдаланушылар»)    @RequestMethod(RequestMethodTypes.ПОСТ)    @ResponseStatus(HttpStatus.ҚҰРЫЛҒАН)    қоғамдық жарамсыз қосу(Пайдаланушы пайдаланушы) {        бұл.userService.сақтау(пайдаланушы);    }    @ Әрекет(«/users/{user.id}»)    @RequestMethod(RequestMethodTypes.ҚОЙЫҢЫЗ)    @ResponseStatus(HttpStatus.NO_CONTENT)    қоғамдық жарамсыз жаңарту(Пайдаланушы пайдаланушы) лақтырады NotFoundException {        егер (пайдаланушы == нөл) {            лақтыру жаңа NotFoundException();        }        бұл.userService.жаңарту(пайдаланушы);    }    @ Әрекет(«/ users / {id}»)    @RequestMethod(RequestMethodTypes.ЖОЮ)    @ResponseStatus(HttpStatus.NO_CONTENT)    қоғамдық жарамсыз жою(Бүтін идентификатор) лақтырады NotFoundException {        Пайдаланушы e = бұл.userService.жою(идентификатор);        егер (e == нөл) {            лақтыру жаңа NotFoundException();        }    }}

Ерекшелік өңдеуші

Контроллер деңгейі

@ResponseError(мәні=HttpStatus.Қақтығыс,                себебі=«Деректердің тұтастығын бұзу», мақсат=DataIntegrityViolationException.сынып)қоғамдық сынып ExampleController {     @ Әрекет(«/ әрекет»)   қоғамдық жарамсыз әрекет() лақтырады DataIntegrityViolationException{       ...   }}

Әрекет деңгейі

қоғамдық сынып ExampleController{     @ Әрекет(«/ әрекет»)   @ResponseError(мәні=HttpStatus.Қақтығыс,             себебі=«Деректердің тұтастығын бұзу», мақсат=DataIntegrityViolationException.сынып)   қоғамдық жарамсыз әрекет() лақтырады DataIntegrityViolationException{       ...   }}

Әдіс

қоғамдық сынып ExampleController{     @ Әрекет(«/ әрекет»)   қоғамдық жарамсыз әрекет() лақтырады MyBadDataException {       ...   }   @ResponseError(MyBadDataException.сынып)   қоғамдық WebActionResult myBadDataException(Лақтырылатын ерекшелік, WebActionResult нәтиже) {       нәтиже           .setResponseStatus(HttpStatus.СҰРАНЫС ҚАТЕ)           .setView(«errorView»)           .қосу(«ерекшелік», ерекшелік);       қайту нәтиже;   }}

Іс-қимыл нәтижесін құру

Контроллер

қоғамдық сынып IndexController {     қоғамдық WebResultAction әрекет1Әрекет(WebResultAction нәтиже) {      нәтиже.addHeader(«Мазмұн түрі», «text / html; charset = utf-8»)            .setContentType(Жол.сынып)            .setContent(«  тест »);      қайту нәтиже;   }    қоғамдық WebResultAction әрекет2Әрекет (WebResultAction нәтиже) {        нәтиже.addHeader(«Мазмұн түрі», «text / html; charset = utf-8»)            .setView(«myView»)            .қосу(«мән1», BigDecimal.БІР);        қайту нәтиже;    }}

Полиморфты картаға түсіру

Әдістері:

URIHttp әдісіәдіс
/ қосуПОСТExampleController.add (Жеміс)

Контроллер

қоғамдық сынып ExampleController{    @ Әрекет(«/ қосу»)    @RequestMethod(RequestMethodTypes.ПОСТ)    қоғамдық жарамсыз қосу(        @Any(            metaBean=@Basic(бұршақ=«тип»)            метаМәндер={                @MetaValue(аты=«алма», мақсат=алма.сынып),                @MetaValue(аты=«апельсин», мақсат=апельсин.сынып)            }        )        Жеміс жеміс) {            ...    }}

Атбас бұршақтар

қоғамдық реферат сынып Жеміс {    ...}
қоғамдық сынып алма ұзарады Жеміс {   ...}
қоғамдық сынып апельсин ұзарады Жеміс {   ...}

Реферат

URI картаға түсіру:

Контроллер / ӘрекетURIКөру
ExampleController/ жол/WEB-INF/views/view.jsp
ExampleController/ жол //WEB-INF/views/view.jsp

Контроллер

@Controller(«/ жол», defaultAction="/")@ Әрекет(мәні="/", көрініс=@View(«қарау»))қоғамдық сынып ExampleController{}

URI үлгісін пайдалану

URI картаға түсіру:

Контроллер / әрекетURIКөру
ExampleController/ path / {user}/WEB-INF/views/index/index.jsp
ExampleController.getUser (String)/ path / {userId} / showUser/WEB-INF/views/index/getuser/index.jsp

Контроллер

@Controller(«/ path / {userId}»)қоғамдық сынып ExampleController{    @ Әрекет(«/ showUser»)    қоғамдық Пайдаланушы getUser(Жол Қолданушының ID) {        ...    }}

Файлды жүктеу және жүктеу

@Controller(«/ файлдар»)қоғамдық сынып ExampleController {      @ Әрекет("/")    @RequestMethod(RequestMethodTypes.ПОСТ)    қоғамдық жарамсыз uploadAction(Файл файл) {         // параметр файлы уақытша файл болып табылады         ...    }    @ Әрекет(«/{файл атауы:.*}»)    @RequestMethod(RequestMethodTypes.АЛ)    қоғамдық Файл жүктеуӘрекет(Жол файл атауы) {        Файл файл = ...;        қайту файл;    }}

Форма және сессия

қоғамдық сынып PersonController{    @ Әрекет(«/ сақтау»)    қоғамдық жарамсыз saveAction(        @Basic(ауқымы=«сессия») Пайдаланушы loggerdUser, @Basic(бұршақ=«адам») Адам адам) {        ...    }}

Сондай-ақ қараңыз

Сыртқы сілтемелер

Кітап