Jbootは、JFinal、JFinal-Undertow、Dubbo、Seata、Sentinel、ShardingSphere、Nacosなどに基づいて開発されたマイクロサービスフレームワークであり、開発者がマイクロサービス開発のしきい値を下げるのに役立ちます。同時に、アイデアと日食の下での複数のmavenモジュール、およびjavaコード、html、css、jsなどのリソースファイルのホットロードを完全にサポートします。Shuangshuang開発、幸せな生活。
これまでのところ、Jbootは4年以上オープンソースであり、160以上のバージョンを繰り返し、多くの有名な上場企業を含む1000以上の企業で使用されています。
JbootはJFinalに基づいて開発され、JFinalエコシステムアプリケーションフレームワークに属しています。JFinalのサポートにより、Jbootは主にいくつかの一般的に使用される機能を追加します。
- 1.拡張されたアクションログとSqlログ。それぞれの完全なSQLとその実行時間を詳細に把握します。
- 2.各コントローラーの実行行番号の場所、各インターセプターが実行されているかどうか、およびインターセプターの実行行番号の場所を知ることができます。これは、位置決めとデバッグに便利です。
- 3. JFinal ActiveRecordPluginのサポートにより、列ごとにクエリを実行するAPIが追加され、APIを介してデータをクエリするのがより便利になりました。
例1:
String name = "michael";
DAO.findFirstByColumns(Columns.create("username",name));
生成されたsqlは
select * from tableName where username = 'michael'
例2:
public List<User> findList(){
DAO.alias('u')
.leftJoin("article").as('a').on("u.id = a.user_id")
.loadColumns('u.nickname,a.title')
.findListByColumns(Columns.create().in('u.id',1,2,3))
}
生成されたsqlは
select u.nickname,a.title from user as u
left join article a on u.id = a.user.id
where u.id in (1,2,3)
同時サポート、1対多、多対1、多対多のクエリ、サブデータベースサブテーブルクエリ、分散トランザクションなど。詳細:https://jbootprojects.gitee.io/docs/docs/db.html
- 4. JFinalの@Pathアノテーション(@RequestMappingと同じ)の最新のサポートであり、Configでコードを構成する必要はありません。同時に、パラメーターを@Pathで渡すことができます。
例えば:
@Path("${myconfig}/club")
public class ClubController extends Controller {
......
}
jboot.propertiesに次の構成を追加します。
myconfig = /admin
最終的に、ClubControllerのマッピングパスは/ admin / clubです。実際、@ Pathアノテーションだけでなく、Jbootシステムでは、すべてのアノテーションがパラメーター構成をサポートします。
もちろん、RPC、分散キャッシュ、MQなどのエンタープライズレベルの機能は他にもあります。ドキュメントの詳細:https://jbootprojects.gitee.io/docs/
同時に、Jbootはエンタープライズレベルの開発フレームワークJbootAdminを正式に立ち上げました。詳細は https://jbootprojects.gitee.io/docs/jbootadmin/です。
Jbootには主に次の特徴があります。
- 1.JFinalをベースにしたMVC + ORMの迅速な開発。
- 2. ShardingSphere + Seata分散トランザクションおよびサブデータベースサブテーブルに基づいています。
- 3.DubboまたはMotanに基づくRPCの実装
- 4.センチネルベースの分散電流制限と劣化
- 5.ApolloとNacosに基づく分散構成センター
- 6.EhCacheとRedisに基づく分散セカンダリキャッシュ
Jbootv3.6.0のアップデートは次のとおりです。
- 新規:ClassUtil.hasClassメソッド。一部のサードパーティコンポーネントの依存関係を判別するために使用されます
- 新規:モデルは@JsonIgnoreアノテーションを追加して、出力されない一部のフィールドを構成します
- 新規:モデルはFastJsonアノテーション@JsonField構成サポートを追加します
- New:最新バージョンのJFinal @ Pathの構成のサポートが追加されました
- 新たに追加:DAOがクエリを実行する場合、loadColumns()メソッドを使用してクエリ列を構成するためのサポート
- 修正:列アセンブリのsqlツールクラスin()およびnotIn()メソッドに、パラメーターが空かどうかをチェックするための安全モードが追加されました。安全モードでは、Listがnullではなく、要素がない場合に安全チェックをスキップするという問題を解決します。ありがとう @Liuenxin
- 最適化:Columns.in()およびColumns.notInは、パラメーターListをCollectionに変更します
- 最適化:JFinal、Fastjson、Nacosなどを最新バージョンにアップグレードします
- 最適化:Json関連コード用に別のパッケージを作成します
- 最適化:JbootJsonをリファクタリングして、コードをより簡潔にします
- 最適化:SqlDebugger.debugの名前をSqlDebugger.runに変更し、不要なメソッドを削除します
- 最適化:AopCacheを最適化して、キャッシュされたデータが間違っている場合にキャッシュ情報を自動的に更新します
- ドキュメント:jsonの関連ドキュメントを更新します
開発文書:
https://jbootprojects.gitee.io/docs/
mavenの依存関係:
<dependency>
<groupId>io.jboot</groupId>
<artifactId>jboot</artifactId>
<version>3.6.0</version>
</dependency>
こんにちは世界:
@RequestMapping("/")
public class HelloworldController extends JbootController {
public void index(){
renderText("hello world");
}
public static void main(String[] args){
JbootApplication.run(args);
}
}