SpringBoot初体验
1.何为SpringBoot
简单理解:是集成于spring的优点继而简化spring配置
SpringBoot简化了整个搭建与开发的过程
当然,其通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性等问题得到了很好的解决。
,并且基于其或插件,可以创建可执行的JARs和WARs;
(2)内嵌Tomcat或Jetty等Servlet容器;
(3)提供自动配置的“starter”项目(POMS)以简化配置;
(4)尽可能自动配置Spring容器;
(5)提供准备好的特性,如指标、和外部化配置;
(6)绝对没有
3.1 联网一键搭建SpringBoot工程
新建工程
@RestController
public class HelloWordController {
@RequestMapping("/HelloWord")
public String HelloWord(){
return "HelloWord!!!";
}
}
3.2 Maven搭建SpringBoot工程
3.2.1 新建一个maven工程项目,过程这里不在演示
3.2.2 在pom文件中继承父工程,以及引入web启动依赖
<!--继承父工程-->
<parent>
<artifactId>spring-boot-starter-parent</artifactId>
<groupId>org.springframework.boot</groupId>
<version>2.7.5</version>
</parent>
<groupId>com.aaa</groupId>
<artifactId>SpringBootMaven</artifactId>
<version>1.0-SNAPSHOT</version>
<!--引入web启动依赖-->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
3.2.3 创建主启动类
【注:主启动类的名称随便写,最主要的就是】@SpringBootApplication
@SpringBootApplication
public class SpringBootApp {
public static void main(String[] args) {
SpringApplication.run(SpringBootApp.class,args);
}
}
【注:主启动类一定要放在你创建的包名之下】
3.2.3 创建一个springboot配置文件--application.properties
一切搭建好后再次创建controller层写HelloWord测试
运行成功!!!
4.javaSpringBoot配置文件种类
其有二
4.1 其一·后缀以.properties
application.properties
语法格式主要以key=value的形式
4.2 其二·后缀以.yml
4.2.1 yml数组形式
【注:yml格式有严格要求】
【注:父类与子类之间要有层级】
【注:属性冒号后要空一格,否则会报错】
5.java读取SpringBoot配置文件中的内容
其有二
5.1 其一·利用@Value
在controller层定义三个属性对象,且用@Value注解读取配置文件内容注入到对象中
@Value("${user.names}")
private String name;
@Value("${user.age}")
private Integer age;
@Value("${user.hobby}")
private String hobby;
@RequestMapping("/test")
public String test(){
return name+","+age+","+hobby;
}
运行测试:
【注:这里有个缺陷,@Value只能注入基本数据类型,其他的注入不了,很遗憾】
5.2 其二·利用@ConfigurationProperties
@ConfigurationProperties(prefix = "前缀"
)
其使用方式的是利用注入实体类实现
新建实体类并声明配置文件中所对应的属性
且在controller层中声明对象user
@Autowired
private user user;
@RequestMapping("/test2")
public user test2(){
return user;
}
测试运行:(结果可见)
public class MyServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("打印doGet方法");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("打印doPOST方法");
}
}
新建config包,里面存放各种配置且新建ServletConfig
把自定义的Servlet注册到内置tomcat中
@Configuration
public class ServletConfig {
@Bean
public ServletRegistrationBean<Servlet> registrationBean(){
ServletRegistrationBean<Servlet> servletServletRegistrationBean = new ServletRegistrationBean<>();
servletServletRegistrationBean.setServlet(new MyServlet());
servletServletRegistrationBean.setName("MyServlet");
servletServletRegistrationBean.addUrlMappings("/MyServlet");//当访问此处时,就会走此处方法
return servletServletRegistrationBean;
}
}
测试运行:
注册成功!!!
【注:一定不要忘了加@Bean,否则可打印不出来】
新建Filter类并实现doFilte方法
public class MyFilter implements Filter {
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
System.out.println("经过了过滤器++++++");
}
}
可以再次新建一个FilterConfig类,但是这里为了方便就继续在ServletConfig中演示
此时将Filter注册
@Bean
public FilterRegistrationBean<Filter> filterRegistrationBean(){
FilterRegistrationBean<Filter> filterFilterRegistrationBean = new FilterRegistrationBean<>();
filterFilterRegistrationBean.setFilter(new MyFilter());
filterFilterRegistrationBean.setName("MyFilter");
filterFilterRegistrationBean.addUrlPatterns("/*");
return filterFilterRegistrationBean;
}
此时,访问任何页面都将会被拦截
没有打印内容是因为被拦截器拦截了,这里可以对其放行
到MyFilter类中添加放行
public class MyFilter implements Filter {
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
filterChain.doFilter(servletRequest,servletResponse);//放行资源
System.out.println("经过了过滤器++++++");
}
}
继续测试:
放行成功
以上便是SpringBoot中的部分内容,如有漏缺请在下方留言告知,我会及时补充