みなさん、こんにちは、シャオフです〜
最近、新しいプロジェクトに触れて、もっと面白いフレームワークを使っていることに気づきました。初めて業界に入ったときの私の夢は実現したと言えるので、ノンストップで共有します。
作業を始めたばかりのプロジェクトでは、フロントエンドとバックエンドの分離を行っていません。ページを維持するためにバックエンドが必要になることがよくあります。フロントエンドに適さないと感じることもあります。バックエンドテクノロジーを研究し、ミドルウェアのソースコードを確認するように依頼してください。ああ、フレームワークの基本原則を分析して分析します。これは大きな問題ではなく、たまにJS
実行できます。css
スタイルを書かせてくれたらひどいし、全然興味がないので、こんな人がいるかどうかはわかりません。
今日紹介するフレームワークはページを書く必要がないので、以下のトピックに直接進みましょう。
Erupt
一般的なバックエンド管理フレームワークは、持っていると言われている超低ビットレート、ゼロフロントエンドコード、ゼロ凝乳操作、テーブルを構築する必要はありませんが、純粋なJavaアノテーションが開発3分として知られる、他の特性を完全に構築することができバックエンド管理システム。
えーと、批判が多いようですね。魔法のようですか?一緒に使って感じてみましょう。
まず、現在バージョン以上、バージョン以上をErupt
サポートしている環境を設定しましょう。Java
1.8.0
Spring Boot
2.0
簡単に構築
pom.xml
必要なjar
パッケージを紹介します
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--用户权限管理-->
<dependency>
<groupId>xyz.erupt</groupId>
<artifactId>erupt-upms</artifactId>
<version>1.6.7</version>
</dependency>
<!--接口数据安全-->
<dependency>
<groupId>xyz.erupt</groupId>
<artifactId>erupt-security</artifactId>
<version>1.6.7</version>
</dependency>
<!--后台WEB界面-->
<dependency>
<groupId>xyz.erupt</groupId>
<artifactId>erupt-web</artifactId>
<version>1.6.7</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>compile</scope>
</dependency>
</dependencies>
application.yml
ファイルはデータソースを設定するだけです。事前にデータベースを準備してください。データベースに関しては、小さなエピソードについて説明します。
Github
前にケースコードを送信したとき(https://github.com/chengxy-nds/Springboot-Notebook
)、機密情報のシールドにあまり注意を払っていなかったため、クラウドデータベースアカウントがリークされました。最近、小さなパートナーがデータベースでプロジェクトを実行していることを発見しました。内部のデータ構造を見てください。完全なプロジェクトであることがわかりました。
ライブラリ自体はdemo
、私の実行中のケースのテストライブラリであり、友人がケースを研究する技術的なポイントにより多くの時間を費やせるようにし、環境のセットアップで技術的ではない些細なことを減らすためです。
ここでパスワードを変更したり、ライブラリを削除したりしていないことがわかりました。使用したい場合は、引き続き使用してください。ただし、自分のものではないデータをいじることはできません。他の人の学習に影響を与えるのは良くありません。
spring:
datasource:
url: jdbc:mysql://47.93.6.5:3306/erupt2?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
username: root
password: 123456
jpa:
show-sql: true
generate-ddl: true
database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
database: mysql
profiles:
active: dev
mail:
username: [email protected]
password: xxxxxxx
host: smtp.qq.com
properties:
mail.smtp.ssl.auth: true
mail.smtp.ssl.enable: true
mail.smtp.ssl.required: true
server:
port: 8888
少し外れた話をしたので、続けましょう〜
実はErupt
、ここの環境は整っているんですよね〜、これで終わりですか?
私たちは何もしませんでした、プロジェクトは空のシェルであり、コードの行は書かれていませんでした、そして私たちはテーブルさえ構築しなかったようでした!
心配しないで、次のプロジェクトを開始して、コンソールが多くのテーブル作成ステートメントと挿入ステートメントを出力することを確認しましょう。これはErupt
、フレームワークの基盤となるアプリケーションがJPA
永続的であり、一部のシステムテーブルとデータがプリセットによって作成されるためです。
注:Erupt
プリセットテーブルは、プロジェクトが初めて開始されたときに1回だけ作成されます。再作成する場合は、.Erupt
ファイル(通常はプロジェクトのワークスペース内)を削除して、ファイルの場所の方法を取得する必要があります。
System.getProperty("user.dir")
データベースに作成された16のシステムテーブルを見てください。e_upms_user
テーブルはユーザーテーブルです。デフォルトでは、ユーザー名とパスワードの両方の管理者アカウントは1つだけですerupt
。
訪問した直後にhttp://127.0.0.1:8888/
、それがどのような効果であったかを確認するために、完全なログインページがありました。
上記のユーザー名とパスワードを使用して直接ログインしますerupt
。完全な権限制御やその他の機能は事前に実装されており、これまでコードを記述したことはほとんどありません。これらはすべてフレームワークとメニューデータによってカプセル化されています。はすべてデータベースから動的に取得されます。、基本的なバックグラウンド管理システムが構築されていますが、これは少しすごいです。
面白いページ
だから質問が来ていますか?ページをカスタマイズしたい場合はどうすればよいですか?
最初はerupt
、すべてJava
アノテーションに基づいて開発されたゼロのフロントエンドコードであると述べ、次にアノテーションJava
を使用して簡単なページエクスペリエンスを記述しました。
erupt
2つのコアアノテーションがあります@Erupt
、@EruptField
@Erupt
ページの定義を表す注釈変更クラス@EruptField
ページに表示されるフィールド名を表す注釈変更フィールド@Power
注釈は、ボタンの操作、追加、削除、変更、チェック、インポート、エクスポートなどを行うかどうかを制御します。@Search
注釈は、フィールドが検索条件であることを示します@Table
注釈とは、ページがデータに対応するテーブルをフェッチすることを意味します。設定されていない場合、ページが最初に初期化されるときに、クラス名と一致するテーブル名がクラスフィールド値に従って自動的に作成されます。
注釈には多くの種類があり、1つずつリストするのではなく、公式Webサイトにアクセスして確認するものもあります。
https://www.erupt.xyz
以下では、Student
クラスを定義し、追加@Erupt
して@EruptField
注釈を付けます。これにより、ページと要素が終了した場合でも、認識が少し破壊されますか?
/*
* @Erupt注解修饰在类上,@EruptField注解修饰在字段上
* 其他注解均为Jpa注解
*/
@Getter
@Setter
@Erupt(name = "学生表",
power = @Power(importable = true, export = true)
)
@Entity
//@Table(name = "t_student")
public class Student extends BaseModel {
@EruptField(
views = @View(title = "学生姓名"),
edit = @Edit(title = "学生姓名", notNull = true, search = @Search(vague = true))
)
private String studentName;
@EruptField(
views = @View(title = "所属班级"),
edit = @Edit(title = "所属班级", notNull = true)
)
private String studentClass;
@EruptField(
views = @View(title = "学生年龄"),
edit = @Edit(title = "学生年龄", notNull = true)
)
private String studentAge;
@Lob
@EruptField(
views = @View(title = "学生性别"),
edit = @Edit(title = "学生性别", notNull = true)
)
private String studentSex;
@EruptField(
views = @View(title = "考核状态"),
edit = @Edit(title = "考核状态", notNull = true, boolType = @BoolType(trueText = "通过", falseText = "挂科"), search = @Search)
)
private Boolean status;
}
ただし、今回は新しく作成されたページは表示されません。メニューメンテナンスでカスタムメニュー間のマッピングを手動で行う必要もあります。値のタイプは新しいクラス名 である必要がありますStudent
。
保存して更新すると、新しいページが表示され、ページの機能が非常に完了し、基本的な操作、クエリ、インポート、およびエクスポートの機能がすべて自動的に実現されます。
新しい学生情報がページに追加され、対応するStudent
テーブルにはより多くのレコードがあり、この永続化プロセスは完全にフレームワークによって実行されます。
が、Erupt
フレームワークは深さで、フロントエンドとバックエンドのコードをカプセル化し、それが私たちの個々のニーズを満たすために豊富で柔軟なカスタムインターフェイスを提供します。
私たちは名前遮蔽することを期待して、新しい学生情報を入力したときたとえば、张三
学生のを、エージェントは、ページ上のボタンを機能することができdataProxy
、ボタンのエージェントが対応する方法を実現する上でカスタム・ロジックを実装し、このようにbeforeAdd
、afterAdd
剤であります新しいボタン。
@Getter
@Setter
@Erupt(name = "学生表",dataProxy = {StudentDataProxy.class},
power = @Power(importable = true, export = true)
)
@Entity
//@Table(name = "t_student")
public class Student extends BaseModel {
}
public class StudentDataProxy implements DataProxy<Student> {
@Override
public void beforeAdd(Student student) {
//后台字段校验
if ("张三".equals(student.getStudentName())) {
throw new EruptApiErrorTip("名称禁止为张三!");
}
}
@Override
public void afterAdd(Student student) {
}
@Override
public void afterUpdate(Student student) {
}
@Override
public void afterDelete(Student student) {
}
}
ページに名前が記載されて张三
いるクラスメートを入力すると、正常にブロックされました。同様の機能は他にもたくさんあるので、ここでは例を1つずつ挙げません。ドキュメントを参照してドキュメントを参照してください〜
従来の方法でインターフェースを開発したい場合はErupt
、ページ生成ルールとの競合を心配する必要はなく、まったく影響を受けません。さらに、Erupt
内部JPA
で統合さdao
れており、対応するAPIを呼び出す限り、既製のインターフェースを提供し、開発を開始できます。
手作業でJava
コードを記述したくないかどうかは関係ありません。Erupt
コードジェネレーター、カスタムJava
クラス名、フィールド名も用意されており、コードを生成できますcopy
。
これについて言えばErupt
、主にそのような機敏な武器があることを友達に知らせるために、いくつかの基本的な機能を紹介しただけです。
だけでなく、それはまた、内蔵されたタイマーのような豊富なデータ型、サポートしていることを任务管理
、多表联合查询
、前后端分离部署
、接口权限
、操作记录
、多数据源
、邮件系统
、黑白名单
直接APIを使用することができます呼び出して、非常に多くの便利な機能を。
後ろに言う
Erupt
フレームワークの利点は明らかで、高速で、効率的で、使い始めが簡単で、初心者には非常に使いやすいですが、実際の実稼働環境では、フレームワークを使用して構成辞書のデータ管理を行っています。
その深いカプセル化により開発がシンプルかつ効率的になりますが、比較的複雑で高度にカスタマイズされたシステムの場合、Erupt
フレームワークは不十分であるように見えます。さらに重要なことに、そのコミュニティは特に活発ではなく、結局のところ、ニッチなフレームワークです。
しかし、テクノロジーは常にビジネスに役立ってきました。あなたのビジネスがErupt
あなたの気質に合っているなら、それを使うことを躊躇しないでください!