Это лёгкий 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(){
}
You can comment after Login
Inappropriate content may be displayed here and will not be shown on the page. You can check and modify it through the relevant editing function
If you confirm that the content does not involve inappropriate language/advertisement redirection/violence/vulgar pornography/infringement/piracy/false/insignificant or illegal content related to national laws and regulations, you can click submit to make an appeal, and we will handle it as soon as possible.
Comments ( 0 )