Это лёгкий Java Web-фреймворк, основанный на архитектуре MVC.
Вся структура проекта выглядит следующим образом:
Jfast-demo/
┗ src/
┗ main/
┗ java/
┗ resources/
┗ webapp/
┗ pom.xml
В каталоге java создайте следующую структуру каталогов пакетов:
┗ jfast/
┗ demo/
┗ contrller/
┗ entity/
┗ service/
Обратите внимание, что базовый пакет называется com.jfast, и он будет использоваться в последующей конфигурации.
Отредактируйте файл pom.xml и добавьте зависимость от smart-framework:
<dependency>
<groupId>com.jfast</groupId>
<artifactId>jfast</artifactId>
<version>1.0</version>
</dependency>
Создайте файл с именем jfast.properties в каталоге resources. Его содержимое должно быть следующим:
## Конфигурация пути сканирования пакетов
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 может указывать на конкретный файл свойств.
/**
* База данных 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(){
}
}
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 {
@Transaction(configName = "slave")
public void login() {
} ```
@Transaction(configName = "master")
public void insert(){
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )