轉載自:https://blog.csdn.net/weixin_40873368/article/details/78884690
(如侵權請留言,會刪除)
1.建立簡單的springboot項目
@SpringBootApplication public class Application { public static void main(String[] args) { //最簡單直接的方式,調用SpringApplication類的靜態方法run() SpringApplication.run(Application.class,args); } }
@SpringBootApplication注解是一個組合注解,是標注此類為springboot項目的啟動入口
可用@EnableAutoConfiguration和@ComponentScan代替
@SpringBootApplication public class Application { public static void main(String[] args) { //方式二 SpringApplication springApplication=new SpringApplication(Application.class); springApplication.run(args); } } @SpringBootApplication public class Application { public static void main(String[] args) { //啟動方式三 ConfigurableApplicationContext context = SpringApplication.run(Application.class,args); } }
注意run()方法的參數可以指定其他配置類,用@SpringBootConfiguration注解標注
比如:
//實體bean @Component public class User { public void say(){ System.out.println("Hello spring boot"); } } //配置類,管理bean @SpringBootConfiguration @ComponentScan public class MyConfig { @Bean public User user(){ return new User(); } } //啟動入口 @SpringBootApplication public class Application { public static void main(String[] args) { ConfigurableApplicationContext context = SpringApplication.run(MyConfig.class,args); context.getBean(User.class).say(); } }
2.配置文件的讀取
在springboot中,默認的配置文件為根目錄下的application.properties,項目啟動時程序會自動讀取此配置文件
//默認的application.properties配置文件 my.name=wangpeicai ip.localhost=127.0.0.1 default.port=8080 tomcat.port=${default.port} //讀取默認的application.properties配置文件 //1.方式一 @SpringBootApplication public class Application { public static void main(String[] args) { ConfigurableApplicationContext context=SpringApplication.run(Application.class,args); //通過getEnvironment(),getProperty()方法獲取配置屬性值 System.out.println(context.getEnvironment().getProperty("my.name")); } //2.方式二 /** * 獲取配置文件的值的方式 * 方式一:直接注入Environment對象通過getProperty方法獲取配置 * 方式二:通過@Value(${屬性名})獲取 */ @SpringBootConfiguration public class MyEnvironment{ @Autowired//通過注解直接注入對象 private Environment environment; @Value("${default.port}") private String defaultPort; @Value("${tomcat.port}") private String tomcatPort; //可以通過此方式給屬性設置默認值 @Value("${my.port:1212}") private String myPort; public void show(){ System.out.println(environment.getProperty("ip.localhost")); System.out.println(defaultPort); System.out.println(tomcatPort); System.out.println(myPort); } } @SpringBootApplication public class Application { public static void main(String[] args) { ConfigurableApplicationContext context=SpringApplication.run(Application.class,args); context.getBean(MyEnvironment.class).show(); }
application.properties文件可以放在config目錄下,springboot也會默認去讀取此目錄下的application.peoperties文件,在這就不多說關於設置自定義名字的默認配置文件以及自定義的默認目錄了
//讀取其他的配置文件,通過@PropertySource指定文件 //JdbcConfig.properties配置文件 driveClassName=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/springboot username=root password=root @Configuration //@PropertySource("classpath:jdbcConfig.properties")//加載一個屬性文件 @PropertySources({@PropertySource("classpath:jdbcConfig.properties"),@PropertySource("file:/W:/workspace_idea/springbootreadproperty/testConfig.properties")})//加載多個屬性文件,file:/ 可以指定系統目錄下的屬性文件 public class JdbcConfig { @Value("${driveClassName}") private String driveClassName; @Value("${url}") private String url; @Value("${username}") private String username; @Value("${password}") private String password; //從系統目錄中讀取的文件屬性值 @Value("${my.test}") private String myTest; public void showJdbcProperties(){ System.out.println("driveClassName="+driveClassName); System.out.println("url="+url); System.out.println("username="+username); System.out.println("password="+password); System.out.println("myTest="+myTest); } } @SpringBootApplication public class Application { public static void main(String[] args) { ConfigurableApplicationContext context=SpringApplication.run(Application.class,args); context.getBean(JdbcConfig.class).showJdbcProperties(); } //通過@ConfigurationProperties(prefix = "xxx")的方式指定讀取前綴名為xxx的屬性值 //wpc.properties配置文件 wpc.name=wpc wpc.age=100 wpc.sex=man @Component @PropertySource("classpath:wpc.properties") @ConfigurationProperties(prefix = "wpc")//可以通過前綴名注入屬性 public class WpcConfig { private String name; private int age; private String sex; public void show (){ System.out.println("wpc.name="+name); System.out.println("wpc.age="+age); System.out.println("wpc.sex="+sex); } //可以通過get,set方法注入屬性值 public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } }
