SSM框架之使用注解开发

SSM框架之使用注解开发

注解 小巧,方便,本意是便于开发。

但注解缺比较繁多,功能复杂,个数多,学多了以后就比较会容易忘记。这篇的目的就是复习一下SSM框架中之前用到的所有注解

MyBatis篇

首先就是用于Mapper接口中的4个CRUD注解和@Param注解

@Select 注解 同 @Insert @Update @Delete

在Mapper接口中,加在声明的方法上,并接上sql语句。

@Select("select * from user where id = #{id}")
User getUserByID(@Param("id") int id);

@Param注解用于给方法参数起一个名字。

  • 在方法只接受一个参数的情况下,可以不使用@Param。
  • 不使用@Param注解时,参数只能有一个,并且是Javabean。

不过,增删改查的四大注解只能够处理简单的业务。

在规范的约束下,更多的会使用xml配置

Spring 篇

在使用Spring注解开发之前,需要在Spring配置文件中开启属性注解支持!

<context:annotation-config/>

以及扫描包,使包下的注解生效!

<context:component-scan base-package="com.kuang.pojo"/>

@Autowired

  • 直接用在属性上,或者set方法上

  • 需要导入spring-aop的包!

  • 先按byName的模式寻找(找与set方法后半段名字相同的id),如果找不到,再使用byType寻找(class对应的类型要唯一)。

  • 如果不唯一则可启用@Qualifier注解

  • @Qualifier(value=“在配置文件中其二的id”)

  • @Qualifier与@Autowired 需要成对出现

  • @Autowired(required=false) 说明:false,对象可以为null;true,对象必须存对象,不能为null。

SSM框架之使用注解开发_第1张图片

SSM框架之使用注解开发_第2张图片

@Resource

  • 直接用在属性上,或者set方法上

  • @Resource(name=“xxx”) 如果像这样有指定的name属性,就先按该属性进行byName模式的装配

  • 再次进行默认的byName方式进行装配

  • 如果都不行,再按照byType的方式自动装配

@Nullable

  • 字段如果标记了这个注解,说明这个字段可以为null

@Component

  • 作用于类上方,等价于在spring配置文件中的标签

  • @Component有几个衍生注解,在web开发中,会按照mvc三层架构分层

    • dao 层中 使用 @Repository
    • service 层中 使用 @Service
    • controller 层中 使用 @Controller
  • 这四个注解功能相同,都代表将某个类注册到Spring容器中,装配bean

  • @Value注解

    • 使用在属性或set方法上,@Value(“值”),等价于在spring配置文件中的标签内的标签,为属性赋值

@Scope

  • 作用域注解,作用于类的上方
  • 默认的就是@Scope(“prototype”)

SSM框架之使用注解开发_第3张图片

在SpringBoot中,使用纯Java的方式配置spring的方式比较常见,下面是关于这个的注解

@Configuration

  • 代表下面这个类是配置类

@ComponentScan

  • 扫描包下的注解,使之生效

  • @ComponentScan("com.kuang.pojo")
    

@Import

  • 导入合并其他的配置类

@Bean

  • 通过方法注册一个bean,这里的返回值就是Bean的类型,方法名就是bean的id
@Bean 
public Dog dog(){
    return new Dog();
}

SSM框架之使用注解开发_第4张图片

注解实现AOP

@Aspect

  • 代表这个类是一个切面

@Before @After @Around

  • 代表切入点

    @Before("execution(* com.kuang.service.UserServiceImpl.*(..))")
    

SSM框架之使用注解开发_第5张图片

SpringMVC篇

多数情况下SpringMVC是最喜爱注解的。

SpringMVC也是属于Spring的一部分,因此也需要扫描包,使包下的注解生效

<context:component-scan base-package="com.kuang.controller"/>	

同时需要mvc注解驱动

<mvc:annotation-driven />

在spring中一般采用@RequestMapping注解来完成映射关系
要想使@RequestMapping注解生效
必须向上下文中注册DefaultAnnotationHandlerMapping
和一个AnnotationMethodHandlerAdapter实例
这两个实例分别在类级别和方法级别处理。
而annotation-driven配置帮助我们自动完成上述两个实例的注入
|SSM框架之使用注解开发_第6张图片
| |

@Controller

  • 与@Component同作用,且相当于实现了Controller类

@RequestMapping

  • 作用在类上或者方法上,映射请求路径

  • 实际的请求路径就是类上的@RequestMapping再加上方法上的@RequestMapping

  • 还有其衍生注解,@GetMapping,@PostMapping

@RequestMapping(method = RequestMethod.POST)

@PathVaribale

  • 让方法参数的值对应绑定到一个URI模板变量上(接收请求路径中占位符的值)

    SSM框架之使用注解开发_第7张图片

更详细可以戳这里

@RequestParam

  • 将参数改名为@RequestParam(“值”)中的值,原来的参数名,不再能使用

SSM框架之使用注解开发_第8张图片

@RestController

  • 类下所有的方法都不会走视图解析器,而是返回一个字符串

  • @ResponseBody,注解的方法不会走视图解析器,而是返回一个字符串

目前用过的就这么多了,随着经验增加还会用到其他注解,不定期更新!

你可能感兴趣的:(ssm,反射)