LoginSignup
0
0

More than 1 year has passed since last update.

SpringBoot関連の細かいこと

Last updated at Posted at 2021-06-15

環境設定

プロキシエラー(407)で、つまずいたので年のため共有します。

1.eclipse.iniに以下を追加

-Djdk.http.auth.tunneling.disabledSchemes=""

2.プロキシの設定を追加

[ウィンドウ] -> [設定] -> [一般] -> [ネットワーク接続]

アクティブ・プロバイダー「ネイティブ」を「マニュアル」に変更し、「HTTP」と「HTTPS」に編集ボタンを押し以下プロキシの設定を追加

ホスト:127.0.0.1 ポート:8080

認証が必要にチェックを入れて自分のユーザパスワードを入力

.m2

配下に以下ファイルを配置してファイル内のursename,passwordの箇所にご自分の情報をいれてためしてみてください
(それぞれ2か所あります)
setting.xml

取り込み方法

・Import 既存MAVENプロジェクト

Eclipse 設定 ini

-Xms256m

-Xmx1024m

Teams

改行するときはShift+Enterで可能です。

また、何行も打ちたいときは下のA押すと、Enterだけで改行できま

EclipseでGitを使う。

EgitでCommit時のコミッター設定

Pom

<dependency>

<groupId>org.dbunit</groupId>
 <artifactId>dbunit</artifactId>
 <version>2.5.4</version>
<scope>test</scope>

</dependency>

<dependency>

<groupId>com.fasterxml.jackson.datatype</groupId>

 <artifactId>jackson-datatype-jsr310</artifactId>

<version>2.6.1</version>

</dependency>

テストプログラム 下記のアノテーションがないとSpringは動きません。

@SpringBootTest

プログラムについて

全体

・メンバ変数は、特に理由がない限りprivateで定義する

・変数定義、初期化は使用する直前でおこなう

・try catchは、理由がない限り使わない(エラー共通処理で、処理するためthrow)

・定数名の中にコード値を含めない→コード値が変更されると意味がわからないため

・StringUtilsの扱いが考える。If n==null || 空白

@RestControllerを使う

@Controller → 主にWebページ用のコントローラで使用する。

@RestController → JsonやXML等を返すWebAPI用のコントローラで使用する。

@RequestMapping
URLのパスはこちらに定義

@PostMappingを使う。

@RestControllerに変更すると@ResponseBodyは不要なので削除

・同じ条件のif文が複数あるので1つにまとめて処理する。

・リターンをmapで返すのではなく、dtoを定義する。

・staticメソッドにしない。

・フォーマッターを使う。
・相対パス 決め打ちは避ける。 → 変に刺激するみたいです。

以下本当にメモ

DBアクセスのソース群

・mainクラス

    @Bean

    public DataSource dataSource() {????????

        return DataSourceBuilder.create().url("jdbc:postgresql://localhost:5432/postgres")

                .username("postgres").password("postgres").build();

    }





    @Bean

    public SqlSessionFactoryBean sqlSessionFactory() {????????

        SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();

        sessionFactoryBean.setDataSource(dataSource());

        return sessionFactoryBean;

    }





    @Bean

    public PlatformTransactionManager transactionManager() {????????

        return new DataSourceTransactionManager(dataSource());

    }



・mapper(javaとxml)

参考:DeliveryGoodsInfoMapper





・entity(必要に応じて)

参考:DeliveryGoodsInfo





・呼び出す側のコード

    @Autowired

    private DeliveryGoodsInfoMapper deliveryGoodsInfoMapper;



    @Autowired

    DeliveryGoodsInfoExample deliveryGoodsInfoExample;



    public Long getCount() {





        return deliveryGoodsInfoMapper.countByExample(deliveryGoodsInfoExample));





    }



MyBatis自動生成メソッド 条件文の作り方



想定通りに動かない例:example.createCriteria()を複数生成

    private List<CodeMappingMaster> getRecordForCodeToSystem(String fromSystemCode, String apiKbn,

            String paramName, String fromValue, String toSystemCode) {????????


        // 取得条件設定用クラス

        CodeMappingMasterExample example = new CodeMappingMasterExample();

        // 変換元システムコード

        example.createCriteria().andFrom_system_codeEqualTo(fromSystemCode);

        // API区分

        example.createCriteria().andApi_classificationEqualTo(apiKbn);

        // パラメータ名

        example.createCriteria().andInterface_paramEqualTo(paramName);

        // 値

        example.createCriteria().andFrom_codeEqualTo(fromValue);

        // 変換先システムコード

        example.createCriteria().andTo_system_codeEqualTo(toSystemCode);



        // 取得結果を返却

        return codeMappingMasterMapper.selectByExample(example);

    }


よい例:example.createCriteria()は1つの条件につき、1つだけ。複数条件はドットでつなげて書く

    private List<CdMappingMaster> getRecordForCodeToSystem(String fromSystemCode, String apiKbn,

            String paramName, String fromValue, String toSystemCode) {







        // 取得条件設定用クラス

        CdMappingMasterExample example = new CdMappingMasterExample();





        // 条件文の生成

        example.createCriteria().andFrom_system_cdEqualTo(fromSystemCode)

                .andApi_classificationEqualTo(apiKbn).andIf_param_nameEqualTo(paramName)

                .andFrom_cdEqualTo(fromValue).andTo_system_cdEqualTo(toSystemCode);





        // 取得結果を返却

        return cdMappingMasterMapper.selectByExample(example);

    }

発展

https://qiita.com/JoeB/items/cd612d829f5b1ac12af6

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0