SpringBoot 個人ブログ分析を構築する (Code Cloud Chasing Dreams のプロジェクト)

ソースコードを最初に置きます:夢ブログ

プロジェクト構造の分析

SSM 開発プロセスにすでに精通している場合は、SpringBoot プロジェクト アーティファクトの作成を簡素化し、必要な名前を直接追加できます。ここと同じにするのが最善です。src/java は第 3 レベルのディレクトリです。このディレクトリを複雑にしないでください。

デフォルトでは @Autowired や @Mapper @Repository などのいくつかのアノテーションをスキップします。

  1. AOPが何をしているのか分かりません、とにかくログイベントのようです、理解できません
  2. config は、インターセプターによってインターセプトされるバックグラウンド ログイン クラスです。
  3. コントローラーは、バックエンド データとフロントエンド ページ間の対話を実現する制御層です。
  4. interceptor は、ログインのインターセプトに対応するインターセプター設定の特別なクラスです。
  5. マッパーデータベース運用管理
  6. pojo (またはエンティティ) エンティティ クラスとその属性は、データベースのテーブル名と列名に対応します。
  7. サービス サービス層はデータベース操作を実行するだけです (マッパー)
  8. utils ツールキットには通常、アルゴリズム暗号化やプラグインなどが含まれていますが、よくわかりません。
  9. リソース リソース パッケージ static 静的リソース SpringBoot はデフォルトで static/このパスは直接/パッケージ名を参照します テンプレート パッケージは Web ページであり、mvc によって構成する必要があります。
  10. 通常、applicaiton.yml 構成ファイルが使用されます。    

 データベースのデータソースは、thymeleaf がコントローラが対応する Web ページにジャンプするためのキーであることを説明していません。Mybatis は、mapper.xml の場所をロックしています。インターフェイスと xml ファイルが一緒にまとめられているため、このプロジェクトにはマッパー ロケーション設定がありません。

・・・xml

サーバー:
  ポート: 8080

春:
  データソース:
    ドライバークラス名: com.mysql.cj.jdbc.Driver
    ユーザー名: root
    パスワード: 123456
    タイプ: com.alibaba.druid.pool.DruidDataSource 
    URL: jdbc:mysql://localhost :3306/myblog 


  thymeleaf:
    キャッシュ: false
    モード: HTML
    プレフィックス: クラスパス:/templates/
    サフィックス: .html 

mybatis: 
  type-aliases-package: com.dreamchaser.pojo
  設定: 
    log-impl: org.apache.ibatis.logging。 slf4j.Slf4jImpl
    ログプレフィックス: マッパー。

「」

pom.xml の依存関係に関しては、ソースコードが既に詳細に記述されているため、アップロードするのが面倒です。 

個人的におすすめの開発アイデア:

データベース --> エンティティクラス --> DAO 層 --> サービス層 --> コントローラ層 --> その他のサポート: ツールまたはインターセプト

自動データ テーブル生成を使用しない場合は、最初にデータベースを作成し、データをインポートする必要があります。

バックエンドのソース/Java:

エンティティクラス

属性名はデータテーブルのカラム名と同じなのでコードを見れば分かります。

だおクラス

データベースの操作方法のインターフェース、どのような関数を記述する必要があるか、どのような関数が一般的に追加、削除、変更、確認されるのか。注釈 @mapper ステートメントの使用に注意してください

または @Repository が注入可能な Bean を実装する

サービスクラス

サービス インターフェイスとサービス実装クラスが含まれています。サービス インターフェイスは dao インターフェイスと一致しています。実装クラスの注釈 @Service および @Autowired は、操作するデータベース メソッドを実装するために必要な dao クラスを挿入します。頭の悪い alt+insert.... 。

フロントエンドは thymeleaf テンプレートを使用します。

サポートを導入するために <html xmlns:th="//www.thymeleaf.org"> を使用していることに注意してください。

追加テーマ

ここで重要なのは、mybatis-generator または Spring data jpa を使用して 2 つのケースでコードを自動生成することです。

mybatis-generator はコードを生成します。

経口基本構成:

pom.xml には mysql が必要です mybatis ジェネレーター-コア ジェネレーター-maven-plugin
maven を忘れずに追加してください

```xml

 <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <configuration>
                    <verbose>true</verbose>
                    <overwrite>true</overwrite>
                </設定>
            </プラグイン>

「」
 

```yml

春:
  データソース:
    ドライバークラス名: com.mysql.cj.jdbc.Driver
    ユーザー名: root
    パスワード: 123456
    タイプ: com.alibaba.druid.pool.DruidDataSource 
    URL: jdbc:mysql://localhost:3306/myblog 
  


  thymeleaf :
    キャッシュ: false
    モード: HTML
    プレフィックス: クラスパス:/templates/
    サフィックス: .html

#mybatis-plus を使用して、次のようなパスに注目してください
mybatis: 
  type-aliases-package: com.dreamchaser.pojo
  マッパーの場所: あなたのパス

「」

次に、generatorConfig.xml はリソースのルート ディレクトリを配置します。 


jarパッケージのjdbc接続情報の変更  
エンティティクラスアドレスの生成
map.xmlファイルの格納アドレスの生成 インターフェーステーブルの
テーブル

生成 複数のテーブルに対応するファイルを生成したい場合はテーブルタグを追加するだけ
mavenコマンドラインを追加 mybatis-generator:generate -e を実行

```xml

<?xml version="1.0"coding="UTF-8"?>
<!DOCTYPEgeneratorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "
        http://mybatis.org/dtd /mybatis-generator-config_1_0.dtd">
<!-- 構成生成器 -->
<generatorConfiguration>

    <!--classPathEntry: データベースの JDBC ドライバー。独自のドライバーの場所を選択できます-->
    <classPathEntry location="D:\mysql-connector-java-8.0.28.jar"/>


    <!-- 1 つのデータベース、1 つのコンテキスト、テーブルに関係なく、defaultModelType="フラット" 大きなデータ フィールド --> <
    context id="MysqlTables" targetRuntime="MyBatis3Simple" defaultModelType="フラット">

        <!-- SqlReservedWords で定義されたキーワード リストに従って、データベース キーワードを自動的に識別します。true に設定されている場合、デフォルトは false です。通常はデフォルト値を維持し、データベース キーワード (Java キーワード) に遭遇し、columnOverride を使用してオーバーライドします --> < プロパティ
        名="autoDelimitKeywords" value="true"/>

        <!-- 生成された Java ファイルのエンコーディング -->
        <property name="javaFileEncoding" value="utf-8"/>

        <!-- beginDelimiter とendingDelimiter: データベースのデータベース オブジェクト名をマークするために使用される記号を示します (ORACLE は二重引用符、MYSQL のデフォルトは `backticks; --> < property name="beginningDelimiter" value="`"
        ) />
        <プロパティ名="endingDelimiter" 値="`"/>

        <!-- Java コードのフォーマット -->
        <property name="javaFormatter" value="org.mybatis.generator.api.dom.DefaultJavaFormatter"/>

        <!-- 格式化XML代码 -->
        <property name="xmlFormatter" value="org.mybatis.generator.api.dom.DefaultXmlFormatter"/>
        <plugin type="org.mybatis.generator.plugins.SerializablePlugin" />
        <plugin type="org.mybatis.generator.plugins.ToStringPlugin"/>

        <!-- コメント -->
        <commentGenerator>
            <property name="suppressAllComments" value="true"/><!-- コメントをキャンセルするかどうか -->
            <property name="suppressDate" value="false"/> < !-- コメント生成タイムスタンプを生成するかどうか -->
        </commentGenerator>

        <!-- jdbc接続-->
        <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/ssmtest?serverTimezone=UTC" userId="root"
                        password= "123456"/>

        <!-- 型変換 -->
        <javaTypeResolver>
            <!-- bigDecimal を使用するかどうか、false で以下の型 (Long、Integer、Short など) を自動的に変換できます -->
            <property name="forceBigDecimals" value= "false "/>
        </javaTypeResolver>

        <!-- エンティティ クラス アドレスを生成 -->
        <javaModelGenerator targetPackage="com.my.entity" targetProject="src/main/java">
            <!-- パッケージの接尾辞としてスキーマを使用するかどうか -->
            <プロパティ名= "enableSubPackages" value="false"/>
            <!-- データベースから返された値から先頭と末尾のスペースを削除します -->
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>

        <!-- map.xml ファイルの保存アドレスを生成 -->
        <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources">
            <property name="enableSubPackages" value="false"/>
        </sqlMapGenerator>

        <!-- インターフェイスdao の生成 -->
        <javaClientGenerator targetPackage="com.my.dao" targetProject="src/main/java" type="XMLMAPPER">
            <property name="enableSubPackages" value="false"/>
        </javaClientGenerator>

        <!-- 複数のテーブルが存在する可能性があり、データベース内の各テーブルはテーブルを書き込むことができます。tableName は照合するデータベース テーブルを示します。または、tableName 属性で % ワイルドカードを使用してすべてのデータベース テーブルと照合し、照合するテーブルのみを照合することもできます。対応するインターフェースが生成されるかどうかを示すファイル EnableSelectByprimarykey 対応設定を自動的に生成します->
        <table tablename = "user_info" EnableCountbyexample = "False"
               EnableupDatexample = "Falsee "
               Enabledeletebyexample ="
               False "EnableSelectByexample =" False "
               SelectByexampleQueryid =" False " "
               enableSelectByPrimaryKey="true"
               enableUpdateByPrimaryKey="true"
               enableDeleteByPrimaryKey="true">

        </テーブル>

    </context>
</generatorConfiguration>

「」

操作が成功すると、エンティティクラスのdaoインターフェースクラスとマッパーのxmlファイルを生成できます。

Spring Data JPaはデータテーブルを自動生成します

springboot プロジェクトを作成し、jpa を追加します。他の mysql ドライバーについては多くを言いません。

```yml

春:
  データソース:
    ドライバークラス名: com.mysql.cj.jdbc.Driver
    ユーザー名: root
    パスワード: 123456
    タイプ: com.alibaba.druid.pool.DruidDataSource 
    URL: jdbc:mysql://localhost:3306/myblog 
  


  thymeleaf :
    キャッシュ: false
    モード: HTML
    プレフィックス: クラスパス:/templates/
    サフィックス: .html 
  jpa: 
    Hibernate: 
      ddl-auto: update 
    show-sql: true

#mybatis-plus を使用して、次のようなパスに注目してください
mybatis: 
  type-aliases-package: com.dreamchaser.pojo
  マッパーの場所: あなたのパス

「」

エンティティ クラスの記述方法は非常に重要です。

@Entity //エンティティクラスとデータテーブルマッピングクラスであることをjpaに伝える
@Table(name = "tbl_user") //どのデータテーブルに対応するかを指定 テーブル名を省略した場合、クラス名は小文字
 @Id / /これは主キーです
 @GeneratedValue(strategy = GenerationType.IDENTITY) //自動インクリメント主キー
 @Column(name="last_name",length = 50) //データテーブルに対応する列
 @Column //デフォルトの列名は属性名です  

手書きの例

```ジャバ 

@実在物

//Table(name="myname") デフォルトのテーブル名テスト

パブリッククラス Test(){

@Id

@GeneratedValue(strategy=GenerationType.IDENTITY)

プライベートの長い ID。

@桁

プライベート文字列テスト名;

}

「」

SpringBoot プロジェクトを開始するだけです  

リソースが導入され、サーバーがトラフィックに耐えられない

 

 

おすすめ

転載: blog.csdn.net/m0_57242470/article/details/124785520