end0tknr's kipple - web写経開発

太宰府天満宮の狛犬って、妙にカワイイ

ResourceUtil for seasar2 java の spring代替は @Configuration + @PropertySource + Environment

import org.seasar.framework.util.ResourceUtil;
   :
private Properties itemNameProp =
    ResourceUtil.getProperties("item_name.properties");
System.out.println(  itemNameProp.get("msg_key") );

seasar2 では↑このように利用していました。

package jp.end0tknr;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.core.env.Environment;

@Configuration
// in src/main/resources/*.properties
@PropertySource("classpath:item_name_ascii.properties")
public class ItemNameProp {

    @Autowired
    private Environment env;

    public String get(String key){
        return env.getProperty(key);
    }
}

spring boot では、↑このように定義し、↓このように利用できます。

package jp.end0tknr;

import java.sql.Timestamp;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.MessageSource;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;


@Controller
public class MyController {

    @Autowired
    UserMstService userMstService;

    @Autowired
    MessageSource messageSource;
    @Autowired
    ItemNameProp itemNameProp;  // ココ

    @RequestMapping(value="/index1")
    public String index1(Model model) {
        System.out.println("START index1");

        List<UserMstEntity> userMstEntities =
                userMstService.selectUserIdList("end0tknr", 1);

        System.out.println(userMstEntities);

        System.out.println(
                itemNameProp.get("suetsuke")    // ココ
                );
        return "index";
    }

その他、Environment 経由で *.properties を参照する場合、 native2ascii の処理が必要です。