@Component定义bean
@Controller:用于表现层bean定义
@Service:用于业务层bean定义
@Repository:用于数据层bean定义
@Configuration注解用于设定当前类为配置类
@ComponentScan注解用于设定扫描路径,此注解只能添加一次,多个数据请用数组格式
@Scope定义bean作用范围
@PostConstruct、@PreDestroy定义bean生命周期
**注意:@PostConstruct和@PreDestroy注解是jdk中提供的注解,从jdk9开始,jdk中的javax.annotation包被移除了,也就是说这两个注解就用不了了,可以额外导入一下依赖解决这个问题。**
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
<version>1.3.2</version>
</dependency>
@Autowired:注入引用类型,自动装配模式,默认按类型装配
@Qualifier:自动装配bean时按bean名称装配(@Qualifier注解无法单独使用,必须配合@Autowired注解使用)
@PropertySource加载properties配置文件
@Bean:表示当前方法的返回值是一个bean对象,添加到IOC容器中
@Import:导入配置信息
@RunWith(SpringJUnit4ClassRunner.class) Spring整合Junit专用的类加载器
@ContextConfiguration junit加载配置文件
@Aspect 设置当前类为切面类
@Pointcut("execution(void com.itheima.dao.BookDao.update())")
@EnableAspectJAutoProxy 开启注解开发AOP功能
@Transactional 配置当前接口方法具有事务
@EnableTransactionManagement 开启注解式事务驱动
处理乱码问题:
get:
<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
<configuration>
<port>80</port><!--tomcat端口号-->
<path>/</path> <!--虚拟目录-->
<uriEncoding>UTF-8</uriEncoding><!--访问路径编解码字符集-->
</configuration>
</plugin>
</plugins>
</build>
post:
protected Filter[] getServletFilters() {
CharacterEncodingFilter filter = new CharacterEncodingFilter();
filter.setEncoding("UTF-8");
return new Filter[]{filter};
}
SpringMVC:
@RequestMapping 设置当前控制器方法请求访问路径
@ResponseBody 设置当前控制器方法响应内容为当前返回值,无需解析
@ComponentScan(value = "com.itheima",
excludeFilters = @ComponentScan.Filter(
type = FilterType.ANNOTATION,
classes = Controller.class
)
)
@RequestParam注解关联请求参数名称与形参名称之间的关系
@EnableWebMvc注解功能强大,该注解整合了多个功能,此处仅使用其中一部分功能,即json数据进行自动类型转换
@RequestBody 将请求中请求体所包含的数据传递给请求参数,此注解一个处理器方法只能使用一次
@RequestBody与@RequestParam区别
- 区别
@RequestParam用于接收url地址传参,表单传参【application/x-www-form-urlencoded】
@RequestBody用于接收json数据【application/json】
- 应用
后期开发中,发送json格式数据为主,@RequestBody应用较广
如果发送非json格式数据,选用@RequestParam接收请求参数
@DateTimeFormat注解设置日期类型数据格式,默认格式yyyy/MM/dd
@PathVariable注解用于设置路径变量(路径参数),要求路径上设置对应的占位符,并且占位符名称与方法形参名称相同
@GetMapping @PostMapping @PutMapping @DeleteMapping代替@RequestMapping(method=RequestMethod.XXX)
@RestController @Controller与@ResponseBody注解,简化书写
@RestControllerAdvice
@ExceptionHandler