ssm(mybatis+spring+springmvc)常用注解

ssm(mybatis+spring+springmvc)常用注解

mybatis中常用注解

@Insert:实现新增
@Update:实现更新
@Delete:实现删除
@Select:实现查询
@Result:实现结果集封装
@Results:可以与@Result 一起使用,封装多个结果集
@ResultMap:实现引用@Results 定义的封装
@One:实现一对一结果集封装
@Many:实现一对多结果集封装
@CacheNamespace:实现注解二级缓存的使用

spring中常用注解

@Component

1.作用:把资源让Spring 来管理。相当于在 xml 中配置一个 bean。
2.属性:value:指定 bean 的 id。如果不指定 value 属性,默认 bean 的 id 是当前类的类名。首字母小写

@Controller@Service@Repository

他们三个注解都是@Component的衍生注解,他们的作用及属性都是一模一样的。
他们只不过是提供了更加明确的语义化。

@Controller:

一般用于表现层的注解。

@Service

一般用于业务层的注解。

@Repository

一般用于持久层的注解。
细节:如果注解中有且只有一个属性要赋值时,且名称是 value, value 在赋值是可以不写。

@Autowired

1.作用:自动按照类型注入。当使用注解注入属性时, set 方法可以省略。它只能注入其他 bean 类型。当有多个类型匹配时,使用要注入的对象变量名称作为 bean 的 id,在 Spring 容器查找,找到了也可以注入成功。找不到就报错。

@Qualifier

1.作用:在自动按照类型注入的基础之上,再按照 Bean 的 id 注入。它在给字段注入时不能独立使用,必须和@Autowired 一起使用;但是给方法参数注入时,可以独立使用。
2.属性:value:指定 bean 的 id。

@Resource(不是Spring的注解,是jdk自带的注解)

1.作用:直接按照 Bean 的 id 注入。它也只能注入其他 bean 类型。
2.属性:name:指定 bean 的 id。

@Autowired + @Qulifier = @Resource

@Value

1.作用:注入基本数据类型和 String 类型数据的
2.属性:value:用于指定值。

@Scope

一般不配置,采用默认的单例
1.作用:指定 bean 的作用范围。
2.属性:
value:指定范围的值。
取值: singleton(Spring默认的) prototype request session globalsession

@Configuration

1.作用:用于指定当前类是一个 spring 配置类, 当创建容器时会从该类上加载注解。 获取容器时需要使用AnnotationApplicationContext(有@Configuration 注解的类.class)。
2.属性:value:用于指定配置类的字节码

@ComponentScan

1.作用:用于指定 spring 在初始化容器时要扫描的包。 作用和在 spring 的 xml 配置文件中的:是一样的。
2.属性:basePackages:用于指定要扫描的包。和该注解中的 value 属性作用一样。

@Bean

1.作用:该注解只能写在方法上,表明使用此方法创建一个对象,并且放入 spring 容器。
2.属性:name:给当前@Bean 注解方法创建的对象指定一个名称(即 bean 的 id)。

@PropertySource

1.作用:用于加载.properties 文件中的配置。例如我们配置数据源时,可以把连接数据库的信息写到properties 配置文件中,就可以使用此注解指定 properties 配置文件的位置。
2.属性:value[]:用于指定 properties 文件位置。如果是在类路径下,需要写上 classpath:

@Import

1.作用:用于导入其他配置类,在引入其他配置类时,可以不用再写@Configuration 注解。 当然,写上也没问题。
2.属性:value[]:用于指定其他配置类的字节码。

@Aspect

表示当前类是一个切面类
@Aspect(切面) = 通知(增强的方法) + 切入点(需要被增强的方法)

@Pointcut

切入点

@Before

前置通知

@AfterReturning

后置通知

@AfterThrowing

异常通知

@After

最终通知

@Around

环绕通知
注意点:AOP使用这五种通知注解时,执行顺序会有变化,所以不推荐采用通知注解

@Transactional

在service层使用此注解相当于配置了事务支持

spring注解小结:

@Component=@Controller=@Servcie=@Repository
@Autowired + @Qualifier = @Resource (JDK自带)
@Value
@Scope
@Bean 外部jar里的类
@Configuration 替代 bean.xml
@ComponentScan 替代 
@Import 引入其他配置类(子配置类)
@PropertySources(“classpath:db.properties”) 引入属性文件
@EnableTransactionManagement  纯注解开启事务的支持  
@EnableAspectJAutoProxy        纯注解开启aop的支持  

junit
@RunWith(SpringJUnit4ClassRunner.class)  替换junit里面的main方法(运行器)
@ContextConfiguration(classes= SpringConfiguration.class) (指定配置类)
@ContextConfiguration(locations = "classpath:bean.xml")  (指定配置文件的路径)

AOP的注解
@Aspect
@Before @AfterReturning @AfterThrowing @After @Around
@Pointcut

springmvc中常用注解

@RequestMapping

作用:用于建立请求 URL 和处理请求方法之间的对应关系。请求路径

@RequestParam

1.作用:把请求中指定名称的参数给控制器中的形参赋值。
2.属性:
value: 请求参数中的名称。
required:请求参数中是否必须提供此参数。 默认值: true。表示必须提供,如果不提供将报错。

@RequestBody

1.作用:用于获取请求体内容。直接使用得到是 key=value&key=value…结构的数据。实现将 controller 方法返回对象转换为 json 响应给客户端。
get 请求方式不适用。
2.属性:required:是否必须有请求体。默认值是:true。当取值为 true 时,get 请求方式会报错。如果取值为 false, get 请求得到是 null。

@PathVaribale

1.作用:用于绑定 url 中的占位符。 例如:请求 url 中 /delete/{id}, 这个{id}就是 url 占位符。
url 支持占位符是 spring3.0 之后加入的。是 springmvc 支持 rest 风格 URL 的一个重要标志。
2.属性:
value: 用于指定 url 中占位符名称。
required:是否必须提供占位符。

springmvc原理图
ssm(mybatis+spring+springmvc)常用注解_第1张图片

文字描述:

1、用户发送请求至前端控制器DispatcherServlet
2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。
3、处理器映射器根据请求url找到具体的处理器,并返回给	DispatcherServlet。
4、DispatcherServlet通过HandlerAdapter处理器适配器调用处理器
5、执行处理器(Controller,也叫后端控制器)。
6、Controller执行完成返回ModelAndView
7、HandlerAdapter将controller执行结果ModelAndView返回给	DispatcherServlet
8、DispatcherServlet将ModelAndView传给ViewReslover视图解析器
9、ViewReslover解析后返回具体View
10、DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)。
11、DispatcherServlet响应用户

你可能感兴趣的:(ssm框架)