学习过程中编写的源码,欢迎大家批评、指正、star!!
https://github.com/xuhaidongGitHub/springboot-xhd
-
@RestController(@ResponseBody + @Controller)
@Controller 是一种特殊化的@Component 类。 @Component把普通pojo实例化到spring容器中,相当于配置文件中的<bean id="" class=""/>。泛指各种组件,就是说当我们的类不属于各种归类的时候(不属于@Controller、@Services等的时候),我们就可以使用@Component来标注这个类。
@ResponseBody 是用来把返回对象自动序列化成HttpResponse
-
@RequestMapping
@RequestMapping注释用于映射url到控制器类或一个特定的处理程序方法。可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。该注解共有6个常用属性:
0.value:指定请求的实际地址.
1.method:指定请求的method类型, GET、POST、PUT、DELETE等.
2.consumes:指定处理请求的提交内容类型(Content-Type),例如application/json, text/html.
3.produces: 指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回.
4.params:指定request中必须包含某些指定参数值,才让该方法处理请求.
5.headers:指定request中必须包含某些指定的header值,才能让该方法处理请求.
-
@SpringBootApplication(@Configuration+@EnableAutoConfiguration+@ComponentScan)
由于这些注解一般都是一起使用,spring boot提供了一个统一的注解@SpringBootApplication。@Configuration:@Configuration的注解类标识这个类可以使用Spring IoC容器作为bean定义的来源。
@EnableAutoConfiguration:能够自动配置spring的上下文,试图猜测和配置你想要的bean类,通常会自动根据你的类路径和你的bean定义自动配置。
@ComponentScan:会自动扫描指定包下的全部标有@Component的类,并注册成bean,当然包括@Component下的子注解@Service,@Repository,@Controller。(@SpringBootApplication默认会扫描启动类包下所有的@Component类,所以使用springboot时,启动类要放在包的最外层)
-
@Configuration
@Configuration用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法,这些方法将会被AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext类进行扫描,并用于构建bean定义,初始化Spring容器。@Configuration使用的过程中有三个注意事项:
1.@Configuration不可以是final类型.
2.@Configuration不可以是匿名类.
3.嵌套的@Configuration必须是静态类.
-
@Bean
@Bean作用于方法上,其实就相当于xml配置文件中的bean,表示创建一个Bean并交给Spring容器,方法的返回值类型表示该Bean的类型,方法名表示该Bean的ID。