Природа-фреймворк: краткое описание
Природа-фреймворк — это лёгкая и свободная среда разработки, которая ориентирована на простоту использования, лаконичность кода, быструю разработку, мощные функции, лёгкую расширяемость и низкую связанность. Она подходит для быстрой разработки облегчённых MVC+ORM фреймворков. В ней нет методов getter/setter, нет конфигурации XML, а размер исходного кода в виде jar составляет всего 280 КБ.
Особенности:
Зависимости Maven:
<dependency>
<groupId>org.nature4j</groupId>
<artifactId>nature-framework</artifactId>
<version>1.0.5</version>
<optional>true</optional>
</dependency>
Последние улучшения:
Как использовать: Для быстрого старта есть три примера:
Пример сущности: Сущность не требует методов GET/SET. Нужно только указать имена полей базы данных. Можно использовать аннотации для управления первичными ключами (@id), которые поддерживают ADDSELF (автоматическое увеличение базы данных), UUID (управление фреймворком) и ASSIGN (идентификатор, указанный программистом).
Также можно использовать @Type для указания типа поля в соответствии с базовыми типами Java. Поддерживаются значения по умолчанию, длина и т. д.
Пример класса User:
@Table(name = "tb_user")
public class User extends NatureMap {
@Id(strategy = Strategy.ADDSELF)
@Type(type = Types.INT)
public String id = "id";
@Type(type = Types.INT)
public String age = "age";
@Type(def = "女")
public String sex = "sex";
public String name = "name";
@Type(length="300")
public String address = "address";
}
Сервис: Можно наследовать от класса NatureService для упрощения разработки. Добавить аннотацию @Service. Транзакции можно быстро реализовать с помощью @Tx. Если бизнес-логика включает больше чтения и меньше записи, рекомендуется использовать кэш. Просто передайте имя кэша. Если есть конфигурация кэша, используйте её, иначе используйте настройки по умолчанию. Все бизнес-правила должны быть реализованы в слое сервиса. Текст 1
String sql = "select id, name, sex, age from tb_user where 1=1 order by id desc";
return DatabaseHelper.query(page, sql, "user_cache");
}
@Tx
public int delete(NatureMap natureMap) {
return super.delete(natureMap, "user_cache");
}
Текст 2
@Ctrl(namespace="/user")
public class UserCtrl extends NatureCtrl{
public User user=new User();//можно не new, но с new будет эффективнее
public File myfile;//файл для получения
public ArrayList<File> files = new ArrayList<File>();//получение нескольких файлов. На странице нужен input с именем files[0...]
public String action;
@Inject
protected UserService userService;
@Ask(url="/list")
public Object list(){
page = userService.page(page);
return "list.ftl";
}
@Ask
public Object toOper(){
if (user.getInt(user.id)!=0) {
userService.byId(user);
action = "update";
}else{
action = "insert";
}
return "oper.ftl";
}
@Ask
@Redirect
public Object insert(){
userService.insert(user,"user_cache");
return "list";
}
@Ask
@Redirect
public Object update(){
userService.update(user,"user_cache");
return "list";
}
@Ask
@Redirect
public Object delete(){
userService.delete(user,"user_cache");
return "list";
}
@Ask
public Object getJson(){
return new JsonData(userService.byId(user));
}
//пример загрузки файла, всё очень просто
@Ask
public Object getFile(){
InputStream inputStream =this.getClass().getResourceAsStream("文件.docx");
return new FileData(inputStream, "文件.docx");
}
}
В настоящее время этот фреймворк используется в более чем десяти крупных и средних проектах компании. После практического применения и обновления он был официально открыт для использования. Для обсуждения вопросов и предложений присоединяйтесь к группе технического общения 148999765.
Создание фреймворка nature-framework было бы невозможно без открытых проектов и технических обменов сообщества open source. Мы особенно благодарны проектам @Jfinal https://git.oschina.net/jfinal/jfinal @黄勇 https://git.oschina.net/huangyong/smart-framework Struts2 SpringMVC и другим превосходным фреймворкам.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )