开发工具 IDEA

这个工具非常方便,搭建框架会自动生成一些必要的目录

IDEA —— Create New Project -—— Spring Initializr —— 选择 Project SDK 版本 —— next —— 设置分组(不是很重要,填上面两就可以了) —— next —— Web —— 勾选 Spring Web —— next —— 取名和保存位置 —— finish

创建成功后,会自动帮我们把启动类创建好了,pom文件也给我配置了

启动类

Spring boot 入门 搭建基础工程

@SpringBootApplication 注解
查看源码,可以发现@SpringBootApplication是一个复合注解,包含了@SpringBootConfiguration,@EnableAutoConfiguration和@ComponentScan三个注解。

@SpringBootConfiguration
@SpringBootConfiguration继承自@Configuration,二者的功能也一致,用于标注当前类是配置类,并且会将当前类内声明的一个或多个以@Bean注解标记的方法的实例纳入到Spring容器中,且实例名就是方法名。

@SpringBootConfiguration和@Configuration都可以理解为Spring传统XML配置里的标签,而@Bean则是标签。

@Configuration和@Bean并不是Spring Boot的特有标签,普通的Spring项目也可以使用,只是普通的Spring项目在使用大多数注解的时候要扫包才能生效,要注意加上扫包配置<context:component-scan base-package=“扫描的包” />。而Spring Boot只需要保证启动main入口在这些类的上层包就行,不需要特别加上扫包配置

@EnableAutoConfiguration

@EnableAutoConfiguration的作用是启动自动配置,意思是Spring Boot会根据你添加的jar包来配置你项目的默认设置,比如你添加了Spring Boot提供的spring-boot-starter-web依赖,其中包含了Tomcat和Spring MVC,这个注释就会假设你正在开发一个Web应用程序,自动地帮你添加Web项目中所需要的Spring配置。

@ComponentScan

@ComponentScan的作用是扫描当前包及其子包下被@Component注解标记的类并纳入到Spring容器中进行管理。是Spring传统XML配置的context:component-scan的替代。

@Controller,@Service,@Repository是@Component的子注解,所以也会被@ComponentScan扫描并做和@Component相同的处理。

@ComponentScan提供了basePackage参数定义要扫描的包,如果不设置,默认会扫描包的所有类,即默认扫描**/*.class路径,建议加上该参数以减少加载的时间。

@SpringBootApplication提供的参数

exclude

exlude参数继承自@EnableAutoConfiguration注解的同名参数,根据class来排除特定的类加入Spring容器,传入参数的value类型是class类型数组。

excludeName

exludeName参数继承自@EnableAutoConfiguration注解的同名参数,根据className来排除特定的类加入Spring容器,传入参数的value类型是class的全类名字符串数组。

exclude和excludeName可以用来关闭指定的自动配置,比如关闭数据源相关的自动配置。

scanBasePackages

scanBasePackages参数继承自@ComponentScan注解的basePackages参数,指定要扫描的包,传入参数的value类型是包名的字符串数组。

scanBasePackageClasses

scanBasePackageClasses参数继承自@ComponentScan注解的basePackageClasses参数,指定要扫描的包,传入参数的value类型是类名的字符串数组。

Controller组件

我们在启动类同级目录下创建一个UserController类
Spring boot 入门 搭建基础工程
Spring boot 入门 搭建基础工程

这里我们只是做个简单的工程,所以用@RestController 注解
@RestController注解相当于@ResponseBody + @Controller合在一起的作用

  1. 如果只是使用@RestController注解Controller,则Controller中的方法无法返回jsp页面,或者html,配置的视图解析器 InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容。
  2. 如果需要返回到指定页面,则需要用 @Controller配合视图解析器InternalResourceViewResolver才行。
    如果需要返回JSON,XML或自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解。
  3. 如果需要返回JSON,XML或自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解。

@RequestMapping 注解

RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。


跑启动类main方法,访问
http://localhost:8080/hello/hello

Spring boot 入门 搭建基础工程

是不是超简单

相关文章: