SpringBoot入门学习笔记

SpringBoot资料查看方式

  • 打开spring官网
    在这里插入图片描述

  • 最下方点击快速开始
    在这里插入图片描述

  • 选择用到的工具
    在这里插入图片描述

  • 查看即可
    在这里插入图片描述



SpringBoot-HelloWorld

  • pom依赖
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.2.4.RELEASE</version>
  </parent>
  
  <groupId>com.x</groupId>
  <artifactId>SpringBootHello</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  
  
  <properties>
    <java.version>1.8</java.version>
  </properties>
  
  <dependencies>
  	<dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
  </dependencies>
</project>
  • 控制器
@Controller
public class SpringBootHelloworld {
	
	@RequestMapping("/hello")
	@ResponseBody
	public Map<String, Object> showHelloWorld(){
		Map<String, Object> map = new HashMap<>();
		map.put("mag", "helloworld");
		return map;
	}
}
  • SpringBoot启动类
@SpringBootApplication
public class App {

	public static void main(String[] args) {
		SpringApplication.run(App.class, args);
	}

}
  • 注意:

启动器存放的位置:启动器可以和controller位于同一级包下,或者位于controller的上一级包中。但是,不能放到controller的平级包及子包下。



SpringBoot整合servlet

  • 两种方式:

①通过注解扫描完成servlet组件的注册;
②通过方法完成servlet组件的注册;

第一种方式:通过注解扫描完成servlet组件的注册

第一步:编写servlet:

/**
 * SpringBoot整合servlet方式一
 * 
 *<servlet>
 *	<servlet-name>FirstServlet</servlet-name>
 *	<servlet-class>com.x.servlet.FirstServlet</servlet-class>
 *</servlet>
 *<servlet-mapping>
 *	<servlet-name>FirstServlet</servlet-name>
 *	<url-pattern>/first</url-pattern>
 *</servlet-mapping>
 */
 
@WebServlet(name="FirstServlet",urlPatterns="/first")
public class FirstServlet extends HttpServlet {
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		System.out.println("servlet启动");
	}
}

第二步:编写启动器类

@SpringBootApplication
@ServletComponentScan  //在springboot启动时会扫描@WebServlet注解,并将该类实例化
public class App {
	public static void main(String[] args) {
		SpringApplication.run(App.class, args);
	}
}

第二种方式:通过方法完成servlet组件的注册

第一步:编写servlet

public class SecondServlet extends HttpServlet {
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		System.out.println("secondservlet");
	}	
}

第二步:编写启动器类

@SpringBootApplication
public class App2 {
	public static void main(String[] args) {
		SpringApplication.run(App2.class, args);
	}
	
	/**
	 * 注册servlet
	 */
	@Bean
	public ServletRegistrationBean getServletRegistrationBean() {
		ServletRegistrationBean bean = new ServletRegistrationBean(new SecondServlet());
		bean.addUrlMappings("/second");
		return bean;
	}
}


SpringBoot整合filter

  • 两种方法:

①通过注解完成filter组件注册;
②通过方法完成filter组件注册;

第一种:通过注解完成filter组件注册
  • 第一步:编写servlet
@WebServlet(name="FirstServlet",urlPatterns="/first")
public class FirstServlet extends HttpServlet {
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		System.out.println("servlet启动");
}
  • 第二步:编写filter
/**
 * springboot整合filter方式一:
 * 
 * <filter>
 * 	<filter-name>FirstFilter</filter-name>
 * 	<filter-class>com.x.filter.FirstFilter</filter-class>
 * </filter>
 * 
 * <filter-mapping>
 * 	<filter-name>FirstFilter</filter-name>
 * 	<url-pattern>/first</url-pattern>	
 * </filter-mapping>
 *
 */
//@WebFilter(filterName="FirstFilter",urlPatterns= {"*.do","*.jsp"})
@WebFilter(filterName="FirstFilter",urlPatterns= "/first")
public class FirstFilter implements Filter {
	@Override
	public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)
			throws IOException, ServletException {
		System.out.println("进入filter");
		arg2.doFilter(arg0, arg1);
		System.out.println("离开filter");
	}
}
  • 第三步:编写启动器类
@SpringBootApplication
@ServletComponentScan
public class App {
	public static void main(String[] args) {
		SpringApplication.run(App.class, args);
	}
}
第二种:通过方法完成filter组件注册

第一步:编写Servlet

public class SecondServlet extends HttpServlet {
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		System.out.println("secondservlet");
	}	
}

第二步:编写Filter

public class SecondFilter implements Filter {
	@Override
	public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)
			throws IOException, ServletException {
		System.out.println("进入filter");
		arg2.doFilter(arg0, arg1);
		System.out.println("离开filter");
	}
}

第三步:编写启动器类

@SpringBootApplication
public class App2 {
	public static void main(String[] args) {
		SpringApplication.run(App2.class, args);
	}
	
	/**
	 * 注册Servlet 
	 */
	@Bean
	public ServletRegistrationBean getServletRegistrationBean() {
		ServletRegistrationBean bean = new ServletRegistrationBean(new SecondServlet());
		bean.addUrlMappings("/second");
		return bean;
	}
	/**
	 * 注册Filter
	 */
	@Bean
	public FilterRegistrationBean getFilterRegistrationBean() {
		FilterRegistrationBean bean = new FilterRegistrationBean(new SecondFilter());
		//bean.addUrlPatterns(new String[] {"*.do","*.jsp"});
		bean.addUrlPatterns("/second");
		return bean;
	}
}


SpringBoot整合Listener

  • 两种方式:

①通过注解注册Listener;
②通过方法注册Listener;

  • 第一种:通过注解注册Listener。
    第一步:编写Listener类
/**
 * <listener>
 * 	<listener-class>com.x.Listener.FirstListener</listener-class>
 * </listener>
 */
@WebListener
public class FirstListener implements ServletContextListener {

	@Override
	public void contextDestroyed(ServletContextEvent sce) {
	}

	@Override
	public void contextInitialized(ServletContextEvent sce) {
		System.out.println("Listener...init......");
	}
	
}

第二步:编写启动器类

@SpringBootApplication
@ServletComponentScan
public class App {
	public static void main(String[] args) {
		SpringApplication.run(App.class, args);
	}
}
  • 第二种:通过方法注册Listener。

第一步:编写Listener

public class SecondListener implements ServletContextListener {
	@Override
	public void contextDestroyed(ServletContextEvent sce) {
	}
	@Override
	public void contextInitialized(ServletContextEvent sce) {
		System.out.println("SecondListener...init......");
	}
}

第二步:编写启动器类:

@SpringBootApplication
public class App2 {
	public static void main(String[] args) {
		SpringApplication.run(App2.class, args);
	}
	
	/**
	 * 注册Listener
	 */
	@Bean
	public ServletListenerRegistrationBean<SecondListener> getServletListenerRegistrationBean(){
		ServletListenerRegistrationBean<SecondListener> bean = new ServletListenerRegistrationBean<SecondListener>(new SecondListener());
		return bean;
	}
}


SpringBoot访问静态资源

  • 默认位置:

①SpringBoot从classpath/static的目录找;
②ServletContext根目录找;

SpringBoot从classpath/static
  • 第一步:在src/main/resources目录下新建static目录。
  • 第二步:在static目录下新建images目录,放置图片。
  • 第三步:编写启动器类,访问即可http:localhost:8080/images/a.jpg
@SpringBootApplication
public class App {
	public static void main(String[] args) {
		SpringApplication.run(App.class, args);
	}
}
ServletContext根目录:
  • 第一步:在src/main下新建webapp目录。
  • 第二步:将静态资源放在该目录下。
  • 第三步:编写启动器类。


SpringBoot文件上传

  • 编写页面
<body>
	<form action="/fileupload" method="post" enctype="multipart/form-data">
		上传文件:<input type="file" name="filename">
		<input type="submit" value="提交">
	</form>
</body>
  • 编写控制器

@RestController:–对该类下所有方法的返回值做json格式转换,可以看做@Controller和@ResponseBody的复合体

@RestController 
public class FileuploadController {
	
	@RequestMapping("/fileupload")
	public Map<String, Object> fileupload(MultipartFile filename) throws Exception, IOException{
		System.out.println(filename.getOriginalFilename());
		filename.transferTo(new File("E:/"+filename.getOriginalFilename()));
		Map<String, Object> map = new HashMap<>();
		map.put("msg", "ok");
		return map;
	}
}
  • 在classpath根目录下编写配置文件
    在src/main/resources/application.properties,名称是默认,不可以包含在任何一个目录中。

maxFileSize:单个文件大小限制。
maxRequestSize:总文件上传大小限制。
注意:单位需要写全称。

spring.http.multipart.maxFileSize=200MB
spring.http.multipart.maxRequestSize=200MB
  • 编写启动器类
@SpringBootApplication
public class App {
	public static void main(String[] args) {
		SpringApplication.run(App.class, args);
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值