SSM常用注解

  • Post author:
  • Post category:其他



目录


SSM常用注解总结


Spring


声明标注注解:


@Service+@Scope


@Controller


@Repository


@Component


bean注入的注解:


@Autowired


@Resource


@Inject


@Value


配置类相关注解:


@Configuration


@Bean


@ComponentScan


切面相关注解:


@Aspect


@Before


@After


@AfterReturning


@AfterThrowing


@Around


@pointcut


SpringMVC


@Controller


@RequestMapping


@ModelAttribute


@PathVariable


@requestParam


@ResponseBody


@RequestHeader


@CookiesValue


Mybatis


@Insert


@Select


@Update


@Delete


@Param


@Results


@Result


SpringBoot


@RestController


@SpringBootApplication


@EnableAutoConfiguration,@ComponentScan三个注解


SSM常用注解总结





Spring

image-20220215203440887

声明标注注解:




@Service+@Scope

@Service:用于标注业务层的注解

要说明@Service注解的使用,就得说一下我们经常在spring配置文件applicationContext.xml中看到如下图中的配置:

<!-- 采用扫描 + 注解的方式进行开发 可以提高开发效率,后期维护变的困难了,可读性变差了 -->
<context:component-scan base-package="com.study.persistent" />

在applicationContext.xml配置文件中加上这一行以后,将自动扫描指定路径下的包,如果一个类带了@Service注解,将自动注册到Spring容器,不需要再在applicationContext.xml配置文件中定义bean了,类似的还包括@Component、@Repository、@Controller。

@Scope("prototype")//多实例,IOC容器启动创建的时候,并不会创建对象放在容器在容器当中,当你需要的时候,需要从容器当中取该对象的时候,就会创建。
@Scope("singleton")//单实例 IOC容器启动的时候就会调用方法创建对象,以后每次获取都是从容器当中拿同一个对象(map当中)。
@Scope("request")//同一个请求创建一个实例
@Scope("session")//同一个session创建一个实例

如这个类:

@Service("courseDAO")
@Scope("prototype")
public class CourseDAOImpl extends HibernateDaoSupport implements CourseDAO{
......
}

其作用就相当于在applicationContext.xml配置文件里配置如下信息:

<bean id="courseDAO" class="com.study.persistent.CourseDAOImpl" scope="prototype">
      ......    
</bean>

@Service(“serviceName”)注解相当于applicationContext.xml配置文件中配置的,表示给当前类命名一个别名,方便注入到其他需要用到的类中。@Service注解也可以不指定serviceName,如果不指定相当于,com.study.service.ServiceName就是这个类的全限定名,不加的话,默认别名就是当前类名,但是首字母小写。

@Controller

@Controller表示在tomcat启动的时候,把这个类作为一个控制器加载到Spring的Bean工厂,如果不加,就是一个普通的类,和Spring没有半毛钱关系。

@Controller:用于标注控制层的注解

  • 用在类上面,表示这个类是一个Controller,比如web controller
  • 该注解可以被当作是@Component注解的一个特殊实现
  • 允许通过类路径扫描自动检测实现类
  • 它通常是和基于注解@RequestMapping的方法结合使用的
  • 该注解有一个默认方法,返回类型为String,value的值默认为空
  • value的值可能是逻辑组件的名称,如果有自动检测到的组件,则将其转换为Spring bean。

@Repository


@Repository:用于标注数据访问组件,即DAO组件

该注解的作用不只是将类识别为Bean,同时它还能将所标注的类中抛出的数据访问异常封装为 Spring 的数据访问异常类型。

@repository是用来注解接口,如下图:这个注解是将接口BookMapper的一个实现类(具体这个实现类的name叫什么,还需要再分析源码找找看)交给spring管理(在spring中有开启对@repository注解的扫描),当哪些地方需要用到这个实现类作为依赖时,就可以注入了.当然我们也可以主动给这个实现类命名。

@Component


@Component:泛指组件,当组件不好归类的时候可以使用Component

(把普通pojo实例化到spring容器中,相当于配置文件中的 )

泛指各种组件,就是说当我们的类不属于各种归类的时候(不属于@Controller、@Services等的时候),我们就可以使用@Component来标注这个类。


被上面四个注解标注的类,都会进入Spring容器中进行管理。

bean注入的注解:

@Autowired


@Autowired:最常用的bean自动注入标签,按bytype自动注入,默认情况下必须要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为false,如:@Autowired(required=false) ,如果我们想使用名称装配可以结合**@Qualifier**注解进行使用

@Autowired()

@Qualifier("StudentDao") 

private StudentDao studentdao;

@Resource

@Resource:作用相当于@Autowired,按byname自动注入

@

Inject

@Inject:是根据类型进行自动装配的,如果需要按名称进行装配,则需要配合**@Named;**

@Value

@Value:为属性注入值

配置类相关注解:

@Configuration

@Configuration:声明当前类为配置类

@Bean

@Bean:注解在方法上,声明当前方法返回值为Bean


@

ComponentScan


@ComponentScan:用于对Component进行扫描


切面

相关注解:

@Aspect


@Aspect:声明这是一个切面

@Before


@Before:前置通知

@After


@After:后置通知

@AfterReturning


@AfterReturning:返回通知

@AfterThrowing


@AfterThrowing:异常通知

@Around


@Around:环绕通知

@pointcut


@pointcut:定义切点

SpringMVC

@Controller


@Controller:用于声明这是一个控制层,SpringMVC中的Controller负责处理由DispatcherServlet 分发的请求

@RequestMapping


@RequestMapping:用来处理请求地址映射,可用在类或方法上

@ModelAttribute


@ModelAttribute:在controller方法调用前,先执行@ModelAttribute方法,可用于注解和方法参数中


@

PathVariable


@PathVariable:用于将请求URL中的模板变量映射到功能处理方法的参数上,即取出uri模板中的变量作为参数。

@requestParam


@requestParam:用于在SpringMVC后台控制层获取参数,类似于request.getParameter(“name”)

@ResponseBody


@ResponseBody:用于将Controller的方法返回的对象,转换为指定格式,如json

@RequestHeader


@RequestHeader:可以把Request请求的header部分的值绑定到方法的参数上。

@CookiesValue


@CookiesValue:把Request header中关于cookie的值绑定到方法的参数上。

Mybatis


@Insert


@Insert:插入sql


@Select


@Select:查询sql


@Update


@Update:更新sql


@Delete


@Delete:删除sql


@Param


@Param:用于传递参数


@Results


@Results:对应于XML中的


@Result


@Result:对应于XML中的

SpringBoot

SpringBoot中与SSM框架中相同的注解就不再写了


@RestController


@RestController:这个注解的意思相当于同时实现了@Controller和@ResponseBody


@SpringBootApplication


@SpringBootApplication:该注解集合了@Configuration,


@EnableAutoConfiguration,@ComponentScan三个注解




版权声明:本文为weixin_51914501原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。