开发工具 IDEA
这个工具非常方便,搭建框架会自动生成一些必要的目录
IDEA —— Create New Project -—— Spring Initializr —— 选择 Project SDK 版本 —— next —— 设置分组(不是很重要,填上面两就可以了) —— next —— Web —— 勾选 Spring Web —— next —— 取名和保存位置 —— finish
创建成功后,会自动帮我们把启动类创建好了,pom文件也给我配置了
启动类

@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类


这里我们只是做个简单的工程,所以用@RestController 注解
@RestController注解相当于@ResponseBody + @Controller合在一起的作用
-
如果只是使用@RestController注解Controller,则Controller中的方法无法返回jsp页面,或者html,配置的视图解析器 InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容。
-
如果需要返回到指定页面,则需要用 @Controller配合视图解析器InternalResourceViewResolver才行。
-
如果需要返回JSON,XML或自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解。
@RequestMapping 注解
RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。
跑启动类main方法,访问
http://localhost:8080/hello/hello

是不是超简单
本文介绍了如何使用IDEA创建Spring Boot项目,通过Spring Initializr生成基础工程,讲解了@SpringBootApplication注解的组成和作用,包括@SpringBootConfiguration、@EnableAutoConfiguration和@ComponentScan。此外,还提及了@Controller组件的使用,以及@RestController、@RequestMapping注解在处理HTTP请求中的功能。
3万+

被折叠的 条评论
为什么被折叠?



