13. システム設定
13.1. Confugrationによる設定
13.1.1. Confugrationによる変更方法
CellProcessorを組み立てる際の動作を Configuration
[ JavaDoc ]クラスでカスタマイズできます。
Configuration は、
BeanMappingFactory
[ JavaDoc ]から設定/取得できます。
Spring Frameworkとの連携 を行う場合は、BeanMappingFactoryの変更を行います。
BeanMappingFactoryの設定を変更した場合は、BeanMappingを
CsvAnnotationBeanReader
やCsvAnnoationBeanWriter
に直接渡します。
1import com.github.mygreen.supercsv.builder.BeanMapping;
2import com.github.mygreen.supercsv.builder.BeanMappingFactory;
3import com.github.mygreen.supercsv.builder.Configuration;
4import com.github.mygreen.supercsv.io.CsvAnnotationBeanReader;
5
6import java.nio.charset.Charset;
7import java.nio.file.Files;
8import java.io.File;
9
10import org.supercsv.prefs.CsvPreference;
11
12public class Sample {
13
14 // 読み込み時の指定
15 public void sampleConfiguration() {
16
17 // BeanMappingFactoryから、Configurationを取得する
18 BeanMappingFactory mappingFactory = new BeanMappingFactory();
19 Configuration config = mappingFactory.getConfiguration();
20
21 // 設定の変更
22 config.setSkipValidationOnWrite(true);
23
24 // BeanMappingオブジェクトの作成
25 BeanMapping<SampleCsv> beanMapping = mappingFactory.create(SampleCsv.class,
26 DefaultGroup.class, WriteGroup.class); // デフォルトと書き込み用のグループクラスを指定する。
27
28 CsvAnnotationBeanReader<SampleCsv> csvReader = new CsvAnnotationBeanReader<>(
29 beanMapping, // BeanMappingのオブジェクトを直接渡します
30 Files.newBufferedReader(new File("sample.csv").toPath(), Charset.forName("Windows-31j")),
31 CsvPreference.STANDARD_PREFERENCE);
32
33 //... 以下省略
34 }
35
36}
13.1.2. Confugrationによる設定項目一覧
Configuration
[ JavaDoc ]で設定可能な項目一覧を下記に示します。
プロパティ名 |
説明 |
---|---|
beanFactory |
独自のTextFormatter/ConstraintProcessorFactory/ConversionProcessorFactoryなどの
インスタンスを作成するためのクラスです。
SpringBeanFactory に切り替えることで、Spring FrameworkのDI機能を使用できます。 |
annoationComparator |
アノテーションを取得する際に、順番を一定に保つために並び変えるためのクラスです。
標準のクラス
AnnotationComparator [ JavaDoc ]は、アノテーションの属性「order」を元に並び変えます。 |
builderResolver |
各タイプの
ProcessorBuilder [ JavaDoc ]のインスタンスを管理するためのクラスです。基本的に、各種アノテーションで独自のクラスタイプに対応・カスタマイズできますが、
既存の実装を切り替えることもできます。
|
skipValidationOnWrite |
書き込み時の値の検証を一律でスキップするかどうか設定できます。
デフォルトは false で値の検証を行います。
|
13.2. Javaシステムプロパティによる設定
Javaシステムプロパティによる設定可能な項目一覧を下記に示します。
javaシステムプロパティは、JVMの起動パラメータ -Dxxx=yyy
または、 System.setProperty("xxx", "yyy")
で指定します。
プロパティ名 |
説明 |
supercsv.annotation.jexlRestricted
[2.4+]
|
ExpressionLanguageJEXLImpl にて、JEXLを Restrict パーミッションでEL式を評価するか指定します。デフォルトは true で、JexlPermissions.RESTRICTED でEL式が評価されます。
値を false に指定すると、JexlPermissions.UNRESTRICTED が設定され、EL式が制限なく評価されますが、
ただし、ELインジェクションの脆弱性に繋がる可能性があるので注意してください。
|
supercsv.annotation.jexlPermissions
[2.4+]
|
ExpressionLanguageJEXLImpl にて、JEXLを評価する際のパーミッションを指定します。EL式中で実行/参照可能なパッケージを指定し、複数指定するときはカンマ(,)区切りで指定します。
例 . sample1.*,sample2.core.*。
このプロパティは、
supercsv.annotation.jexlRestricted の値が true のときにおいて、Restrictパーミッションで実行されるときのみ有効になります。 |