SpringBoot学习之常用注解
@SpringBootAppliaction:通常注解写在SpringBoot启动类中,主要包括三个作用:
1.@Configuration表示将该类作用springboot配置文件类。
2.@EnableAutoConfiguration:表示程序启动时,自动加载springboot默认的配置。
3.@ComponentScan:表示程序启动时,自动扫描当前包及子包下所有类。
@SpringBootConfiguration:表示将该类作用springboot配置文件类,继承@Configuration,二者功能一致。
1.标明当前类是配置类,类内声明一个或者多个以@Bean注解标记的方法。
2.类以@Bean标记的方法的实例对象交给spring容器管理,并且实例名就是方法名。
@Configuration
1.@Configuration注解底层是含有@Component ,所以@Configuration 具有和 @Component 的作用。
2.@Configuration注解相当于spring的xml配置文件中<beans>标签,里面可以配置bean。
@Bean
1.@Bean注解相当于spring的xml配置文件<bean>标签,告诉容器注入一个bean。
2.@Bean注解的方法上如果没通过bean指定实例名,默认实例名与方法名相同。
3.@Bean注解默认为单例模式,可以通过@Scope("prototype")设置为多例。
@Controller:表示该类作用springboot的controller对象类来使用
1.可以扫描使用了该注解类的方法,并检测该方法是否使用了@RequestMapping注解。
2.告诉springboot可以当做controller对象来扫描我,真正处理请求的是标记@RequestMapping注解的方法。
3.该注解类如果返回json对象到页面,则需要在方法上加@ResponseBody注解。
@RestController:该注解相当于@Controller+@ResponseBody的作用
1.返回json数据不需要在方法前面加@ResponseBody注解。
2.使用@RestController注解Controller,配置的视图解析器InternalResourceViewResolver不起作用,就不能返回jsp,html页面,视图解析器无法解析jsp,html页面。
关于 @Controller和@RestController的用法
1.Controller可以用来跳转页面,并且必须配合模板来使用。
@Controller //@ResponseBody public class LoginController { @RequestMapping(value = "/login", method=RequestMethod.GET) public String login() { return "hello world!!"; } }
上面的代码如果直接在浏览器地址栏中输入:http://localhost:8080/login会出现下面得错误:
出现这种情况的原因在于没有使用模版。即@Controller 用来响应页面,@Controller必须配合模版来使用。
SpringBoot支持多种模板包括:
1.FreeMarker
2.Groovy
3.Thymeleaf (Spring 官网使用这个)
4.Velocity
5.JSP (貌似Spring Boot官方不推荐,创建项目会在src/main/resources 下有个templates 目录,这里就是让我们放模版文件的,然后并没有生成诸如SpringMVC 中的webapp目录)
@PostConstruct
想在生成对象时候完成某些初始化操作,而偏偏这些初始化操作又依赖于依赖注入,那么就无法在构造函数中实现。
为此,可以使用@PostConstruct注解一个方法来完成初始化,@PostConstruct注解的方法将会在依赖注入完成后被自动调用。
@Scheduled注解和@EnableScheduling注解的使用
@EnableScheduling注解: 在配置类上使用,开启计划任务的支持
@Scheduled注解: 来声明这是一个任务,包括 cron,fixDelay,fixRate 等类型(方法上,需先开启计划任务的支持)。