SpringBoot启动类的注解
⼯作中刚开始接触了springCloud的⼀整套,其中有个启动类***Application.java上⾯有⼀些注解,不是特别清楚,所以就特地搜索了⼀下,记录下来。
1、通常会⽤到的注解如下:
//例⼦代码
@SpringBootApplication
@EnableFeignClients
@EnableEurekaClient
@MapperScan("***.***.test.dao")
@EnableRedisHttpSession(maxInactiveIntervalInSeconds=1800)
public class StartApplication{
public static void main(String[] args) {
SpringApplication.run(StartApplication.class, args);
}
}
2、逐⼀讲解:
##  @SpringBootApplication
标注这个类是属于SpringBoot的启动类,从源代码中可以获悉,这个注解被@Configuration、@EnableAutoConfiguration、
@ComponentScan 注解所修饰,换⾔之 Springboot 提供了统⼀的注解来替代以上三个注解。
这⾥有个注意点:
业务代码要放在这个启动类的下层。
##  @EnableFeignClients
加上这个注解,表⽰这个服务⽀持调⽤远程服务,关于使⽤@FeignClient的详细,可以参考这个帖⼦:
## @EnableEurekaClient
这个注解是必须的,表⽰这个注解要注册到某个服务(注册中⼼)中,就相当于是给这个服务在⼀个⾥⾯加了⼀个通⾏证,通⾏证的具体内容就涉及到了l配置⽂件⾥⾯了,⼀般在配置⽂件中会有下⾯的配置:
eureka:
client:
serviceurl:
defaultZone: 127.0.0.1:8761/eureka/
代表注册到上⾯的那个注册中⼼。这个注册中⼼⾥⾯的服务包括⾥⾯的所有的接⼝都可以通过协商(对⽅暴露接⼝)之后直接按照规则调⽤。
##  @MapperScan
上⾯的那个注解是⽤来标注扫描dao范围的,这⾥如果你使⽤的MyBatis的话,需要通过配置⽂件来指定Mapper和主要的配置⽂件的位置,配置⽂件⼤概如下:
mybatis:
config-location: classpath:  classpath:com/test/****/l
mapper-locations: classpath:com/test/****/sqlmap/*/*.xml
上⾯的配置要根据⾃⼰的项⽬的具体模块优化。
##  @EnableRedisHttpSession
这⾥是通过这个注解获得缓存session的内容,还需要配合配置⽂件完成,主要是session的配置:
spring:
redis:
host: 127.0.0.1
password: ****
port: ****
如果在代码中需要⽤到session内容时,直接使⽤注解即可:
@Autowired
private HttpServletRequest request;
//代码中直接使⽤上⾯的request可以获得session
HttpSession session = Session();
Object *** = Attribute("***");
通过上⾯的办法可以获得请求中的Session。
完美通行证注册maxInactiveIntervalInSeconds的作⽤就是设置redis销毁session的时间,可以根据具体的业务配置。
##  拓展:还有⼀种⽅法可以快速获得session,这个是属于SpringMVC的特性,不展开了,直接上代码。
ller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class HelloWorldController {
@RequestMapping("/cookieValueTest")
public void cookieValueTest(@CookieValue(value="JSESSIONID")String sessionId) {
System.out.println("通过@CookieValue获得JSESSIONID:"+sessionId);
}
}
上⾯那些就是启动类会经常⽤到的⼏个注解。