1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/zhuimengshaonian-jfast

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Jfast

Это лёгкий Java Web-фреймворк, основанный на архитектуре MVC.

  • Встроенные функции IOC (на основе guice), AOP (на основе guice, cglib), ORM, DAO, MVC и др.
  • Основан на спецификации Servlet 3.0.
  • Используются Java-аннотации вместо XML-конфигурации.
  • Поддерживает jsp, velocity и другие виды представлений.
  • Предназначен для веб-приложений среднего и малого масштаба.
  • Подходит для новичков, так как позволяет быстро начать работу.
  • Ядро обладает хорошей настраиваемостью и легко расширяемым плагинами.

Вводный курс

  1. Создание Maven Web-проекта

Вся структура проекта выглядит следующим образом:

Jfast-demo/
    ┗ src/
        ┗ main/
            ┗ java/
            ┗ resources/
            ┗ webapp/
    ┗ pom.xml

В каталоге java создайте следующую структуру каталогов пакетов:

    ┗ jfast/
        ┗ demo/
            ┗ contrller/
            ┗ entity/
            ┗ service/

Обратите внимание, что базовый пакет называется com.jfast, и он будет использоваться в последующей конфигурации.

  1. Настройка зависимостей Maven

Отредактируйте файл pom.xml и добавьте зависимость от smart-framework:

<dependency>
    <groupId>com.jfast</groupId>
    <artifactId>jfast</artifactId>
    <version>1.0</version>
</dependency>
  1. Написание основного конфигурационного файла Jfast

Создайте файл с именем jfast.properties в каталоге resources. Его содержимое должно быть следующим:

Базовая конфигурация Jfast

## Конфигурация пути сканирования пакетов
jfast.basePackage=com.jfast
## Конфигурация типа представления
jfast.viewType=jsp
## Конфигурация пути ресурсов представления
jfast.baseViewPath=/WEB-INF/jsp/

## Конфигурация источника данных

jfast.dataSource.type=mysql

jfast.dataSource.url=jdbc:mysql://localhost:3306/jfast?characterEncoding=utf8

jfast.dataSource.username=root

jfast.dataSource.password=123456

Чтение свойств из файла

В Jfast вы можете легко получить доступ к свойствам, используя аннотацию @ConfigurationProperties.

Пример конфигурации:

jfast.myconfig.name=aaa
jfast.myconfig.passowrd=bbb
jfast.myconfig.age=10

Для доступа к этим свойствам вам нужно создать класс модели и использовать аннотацию @ConfigurationProperties для привязки класса к файлу конфигурации. Пример:

@ConfigurationProperties(prefix="jfast.myconfig")
public class MyConfigModel{
    private String name;
    private String password;
    private int age;

    //getter setter 略
}

Более продвинутое использование

Аннотация @ConfigurationProperties может указывать на конкретный файл свойств.

  1. Начало разработки кода
/**
 * База данных Entity
 */
@Table(name ="user_info",primaryKey = {"id"})
public class UserInfo {

    private long id;

    private String username;

    private String password;

    // getter/setter
}
/**
* Контроллер
*/
@Controller
@RequestMapping("/user")
public class UserController {

    @Inject
    private UserService userService;

    public void index(){

    }

    @RequestMapping("/list")
    public void list(){

    }

    // подсказка: методы с аннотацией @RequestMapping могут быть опущены, в этом случае Jfast будет использовать имя метода в качестве ключа действия для сопоставления URL
}
/**
 * Интерфейс сервиса пользователя
 */
@Controller
@RequestMapping("/user")
public interface UserService {

   // определение методов интерфейса
}
/**
 * Реализация сервиса пользователя
 */
@Bean
public interface UserServiceImpl implements  UserService{

}

5. Использование ORM слоя

```java
 5.1 DefaultJdbcTemplate
   
  // возвращает объект сущности
   UserInfo userInfo = jdbcTemplate.findOne("select * from user_info where id = ?",UserInfo.class,1);
        return userInfo;

  // возвращает коллекцию объектов сущности
   List<UserInfo> list= jdbcTemplate.findAll("select * from user_info where id = ?",UserInfo.class,1);
        return rep;
 // возвращает карту
   Map<String, Object> reMap = jdbcTemplate.findMap("select id,password from user_info where id = ?","information",1);
        return rep;
 // операция вставки
 UserInfo userInfo = new UserInfo();
 userInfo.setName("hello");
 userInfo.setPassword("123456");
 boolean flag = jdbcTemplate.insert(userInfo);

5.2 Обработка транзакций базы данных

В Jfast обработка транзакций осуществляется автоматически. Вам не нужно писать код, просто используйте аннотацию @Transaction. Пример:

@Bean
public class JfastServiceImpl implements JfastService{

   @Transaction
   public void login(){

}
}
  1. Конфигурация нескольких источников данных
jfast.dataSource.information.url=jdbc:mysql://localhost:3306/information?characterEncoding=utf8
jfast.dataSource.master.username=root
jfast.dataSource.master.password=123456
jfast.dataSource.master.basePackage=com.jfast.entity.master
jfast.dataSource.master.dataSourceClassName=com.jfast.framework.web.orm.dataSource.DefaultDataSourceFactory


jfast.dataSource.slave.url=jdbc:mysql://localhost:3306/stroe?characterEncoding=utf8
jfast.dataSource.slave.username=root
jfast.dataSource.slave.password=123456
jfast.dataSource.slave.basePackage=com.jfast.entity.slave
jfast.dataSource.slave.dataSourceClassName=com.jfast.framework.web.orm.dataSource.DefaultDataSourceFactory

Обработка транзакций для нескольких источников данных

@Bean
 public class JfastServiceImpl реализует JfastService {

    @TransactionconfigName = "slave"
    public void login() {

} ```
    @TransactionconfigName = "master"
public void insert(){

}

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Расширить Свернуть
AFL-3.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://gitlife.ru/oschina-mirror/zhuimengshaonian-jfast.git
git@gitlife.ru:oschina-mirror/zhuimengshaonian-jfast.git
oschina-mirror
zhuimengshaonian-jfast
zhuimengshaonian-jfast
master