Spring和Springboot
Spring框架
通过控制反转(IoC)、依赖注入(DI)的概念解耦应用组件。适用范围范围:任何Java应用
Spring框架为开发Java应用程序提供了全面的基础架构支持。它包含一些很好的功能,如依赖注入和开箱即用的模块。
SpringMVC
MVC:Model-View-Controller (模型-视图-控制器),一种软件设计模式
SpringMVC:Spring框架带了MVC组件。
Springboot
Spring框架下有各种各样MVC这种的小框架,Springboot把他们都整合起来,方便你配置。
Spring Boot基本上是Spring框架的扩展,它消除了设置Spring应用程序所需的XML配置,为更快,更高效的开发生态系统铺平了道路。比如内嵌了Tomcat!
Maven
Apache 下的一个纯 Java 开发的开源项目,是一个项目管理工具,方便引入各种依赖。
pom.xml自动导入依赖。
注意配置Repository路径。
IDEA:File>Settings>Build,Execution,Deployment>Build Tools>Maven
通过Maven引入依赖。
Spring创建Web应用程序所需的最小依赖项
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.1.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.1.0.RELEASE</version>
</dependency>
Spring Boot只需要一个依赖项来启动和运行Web应用程序
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.0.6.RELEASE</version>
</dependency>
服务器
- Apache与Tomcat都是Apache开源组织开发的用于处理HTTP服务的项目。
- Apache服务器 只处理 静态HTML。
- Tomcat专门用于Java Web。相当于一个可独立运行的servlet容器。
- Springboot内嵌了Tomcat,不需要自己配置。
Tomcat目录
webapps文件夹:
tomcat下的webapps是用来存放运行工程的目录。
war包是JavaWeb程序打的包,war包里面包括写的代码编译成的class文件,依赖的包,配置文件,所有的网站页面,包括html,jsp等等。一个war包可以理解为是一个web项目,里面是项目的所有东西。
以Tomcat来说,将war包放置在其\webapps\目录下,然后启动Tomcat,这个包就会自动解压,就相当于发布了。
IDEA Project Structure
Modules IDEA需要设置哪个文件夹是src之类的(只有src文件夹可以新建Java Class)。
Facets 表述了在Module中使用的各种各样的框架、技术和语言。这些Facets让Intellij IDEA知道怎么对待module内容,并保证与相应的框架和语言保持一致。;
Artifacts 是maven中的一个概念,表示某个module要如何打包,例如war exploded、war、jar、ear等等这种打包形式;一个module有了 Artifacts 就可以部署到应用服务器中了!
- web application exploded:这个是以文件夹形式发布项目,发布项目时就会自动生成文件夹在指定的output directory。
- web application archive:就是war包形式,将项目打成一个war包在指定位置。
启动类
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
@SpringBootApplication:申明让spring boot自动给程序进行必要的配置
DemoApplication类执行main方法,main方法调用SpringApplication的run方法。
run方法干了两件事:
创建SpringApplication对象。
当Web服务器启动时,Web服务器会自动创建一个application对象。application对象一旦创建,它将一直存在,直到Web服务器关闭。
利用创建好的SpringApplication对象调用run方法。
SpringApplication.run(MySpringConfigurationApp.class, args);
第一个参数MySpringConfigurationApp.class是项目入口的类,传给SpringApplication用来构造application对象的。
public SpringApplication(ResourceLoader resourceLoader, Class<?>… primarySources)
控制器类
@Controller:用于定义控制器类,在spring项目中由控制器负责将用户发来的URL请求转发到对应的服务接口(service层),一般这个注解在类中,通常方法需要配合注解@RequestMapping。
使用@Controller 注解,在对应的方法上,视图解析器可以解析return 的jsp,html页面,并且跳转到相应页面。
若返回json等内容到页面,则需要加@ResponseBody注解
@RequestMapping:提供路由信息,负责URL到Controller中的具体函数的映射。
@RestController 相当于@Controller+@ResponseBody两个注解的结合,返回json数据不需要在方法前面加@ResponseBody注解了,但使用@RestController这个注解,就不能返回jsp,html页面,视图解析器无法解析jsp,html页面
Hello World
@RestController
public class TestController {
@RequestMapping("/")
public String helloworld(){
return "Hello World ";
}
}