1. 程式人生 > >SpringBoot直接讀取預設屬性檔案application的兩種方式

SpringBoot直接讀取預設屬性檔案application的兩種方式

第一種

@Configuration
public class ADConfig {

    @Value("${ad.username}")
    private  String adminName;

    @Value("${ad.password}")
    private  String adminPassword;

    @Value("${ad.ldapURL}")
    private  String ldapURL;

    @Bean
    public LdapContext readConf() {
        Hashtable env = new Hashtable();
        env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
        env.put(Context.SECURITY_AUTHENTICATION, "simple");//"none","simple","strong"
        env.put(Context.SECURITY_PRINCIPAL, adminName);
        env.put(Context.SECURITY_CREDENTIALS, adminPassword);
        env.put(Context.PROVIDER_URL, ldapURL);
        LdapContext ctx=null;
        try {
            ctx = new InitialLdapContext(env, null);
        } catch (NamingException e) {
            e.printStackTrace();
        }
        return ctx;
    }
}

第二種
@Configuration
public class ADConfig {

    @Autowired
    private Environment env;

    @Bean
    public LdapContext readConf() {
        String adminName = env.getProperty("ad.username");
        String adminPassword = env.getProperty("ad.password");
        String ldapURL = env.getProperty("ad.ldapURL");//
        Hashtable env = new Hashtable();
        env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
        env.put(Context.SECURITY_AUTHENTICATION, "simple");//"none","simple","strong"
        env.put(Context.SECURITY_PRINCIPAL, adminName);
        env.put(Context.SECURITY_CREDENTIALS, adminPassword);
        env.put(Context.PROVIDER_URL, ldapURL);
        LdapContext ctx=null;
        try {
            ctx = new InitialLdapContext(env, null);
            System.out.println("222");
        } catch (NamingException e) {
            e.printStackTrace();
        }
        return ctx;
    }
}


如果屬性比較多建議通過提取bean的方式來讀取