### 1. 在springboot中获取容器对象并从容器中获取对象
通过SpringApplication.run(SpringbootJspApplication.class, args)方法的返回值获取容器对象。
//获取容器对象
ConfigurableApplicationContext ctx = SpringApplication.run(SpringbootContainerApplication.class, args);
//从容器中获取对象
UserService userService = (UserService) ctx.getBean("UserService");
public static ConfigurableApplicationContext run(Class<?> primarySource, String... args) {
return run(new Class[]{primarySource}, args);
}
/*ConfigurableApplicationContext:接口,是ApplicationContext的子接口*/
public interface ConfigurableApplicationContext extends ApplicationContext
### 2. CommandLineRunner接口和ApplicationRunner接口
这两个接口都有一个run方法,执行时间在容器对象创建好后,自动执行run()方法。
在run()方法中可以完成自定义的在容器对象创建后的一些操作,比如读取文件,数据库连接等等。
@FunctionalInterface
public interface CommandLineRunner {
void run(String... args) throws Exception;
}
@FunctionalInterface
public interface ApplicationRunner {
void run(ApplicationArguments args) throws Exception;
}
//项目启动后根据输出顺序判断run()方法的执行顺序
@SpringBootApplication
public class SpringbootCommandlinerunnerApplication implements CommandLineRunner {
/**通过@Resource注解注入service对象*/
@Resource
private HelloService helloService;
public static void main(String[] args) {
System.out.println("准备创建容器对象");
//创建容器对象
SpringApplication.run(SpringbootCommandlinerunnerApplication.class, args);
System.out.println("容器对象创建之后");
}
@Override
public void run(String... args) throws Exception {
//可做自定义的操作,比如读取文件,数据库连接等等
//在容器对象创建好就执行的方法
String str = helloService.sayHello("james");
System.out.println("调用容器中的对象="+str);
}
}
### 3.当某个端口被占用后的解决方案:
在命令行输入:
(1)netstat -ano | findstr 8080 查看占用此端口的PID
(2) tasklist | findstr PID 查看PID对应进程的名称
(3)Ctrl+Alt+Delete 打开任务管理器,找到对应进程后结束该进程。
### 4.springboot中多环境配置:
有开发环境,测试环境,上线的环境,每个环境有不同的配置信息,例如端口,上下文,数据库url,用户名,密码等等。
优点:使用多环境配置,文件,可以方便切换不同的配置;
方式:创建多个配置文件,名称规则:application-环境名称.properties(yml)
创建开发环境的配置文件:application-dev.properties(application-dev.yml)
创建测试环境的配置环境:application-test.properties(application-test.yml)
项目上线使用的配置文件:application-online.properties(application-online.yml)
在开发中具体使用哪个配置文件就在application.properties文件中激活:
激活方式:
spring.profiles.active=dev(激活开发环境的配置文件)
spring.profiles.active=test(激活测试环境的配置文件)
spring.profiles.active=online(激活上线环境的配置文件)