Spring局部
1.申明bean的注解
@Component 组件,没有明确的角色
@Service 在业务逻辑层应用(service层)
@Repository 在数据拜访层应用(dao层)
@Controller 在展示层应用,控制器的申明
2.注入bean的注解
@Autowired:由Spring提供 它能够对类成员变量、办法及构造函数进行标注,实现主动拆卸的工作
@Qualifier指定注入Bean的名称 如果容器中有一个以上匹配的Bean时,则能够通过@Qualifier注解限定注入的Bean名称
@Scope注解来显式指定Bean作用范畴
@Value:注入根本数据类型和 String 类型数据的
@Resource:间接依照 Bean 的 id 注入,如果依据id无奈找到则依据类型进行查找。
都能够注解在set办法和属性上,举荐注解在属性上(高深莫测,少写代码)。
3.java配置类相干注解
@Configuration 申明以后类为配置类,相当于xml模式的Spring配置(类上)
@Bean 注解在办法上,申明以后办法的返回值为一个bean,代替xml中的形式(办法上)
@Configuration 申明以后类为配置类,其中外部组合了@Component注解,表明这个类是一个bean(类上)
@ComponentScan 用于对Component进行扫描,相当于xml中的(类上)
@WishlyConfiguration 为@Configuration与@ComponentScan的组合注解,能够代替这两个注解
4.切面(AOP)相干注解
Spring反对AspectJ的注解式切面编程。
@Aspect 申明一个切面(类上) 应用@After、@Before、@Around定义建言(advice),可间接将拦挡规定(切点)作为参数。
@After 在办法执行之后执行(办法上) @Before 在办法执行之前执行(办法上) @Around 在办法执行之前与之后执行(办法上)
@PointCut 申明切点 在java配置类中应用@EnableAspectJAutoProxy注解开启Spring对AspectJ代理的反对(类上)
5.@Bean:该注解只能写在办法上,表明应用此办法创立一个对象,并且放入 spring 容器
@PostConstruct:用于指定初始化办法
@PreDestroy:用于指定销毁办法
@Scope:指定 bean 的作用范畴(singleton 、prototype、 request 、session、globalsession)。
Singleton (单例,一个Spring容器中只有一个bean实例,默认模式), Protetype (每次调用新建一个bean), Request (web我的项目中,给每个http request新建一个bean), Session (web我的项目中,给每个http session新建一个bean), GlobalSession(给每一个 global http session新建一个Bean实例)
@StepScope 在Spring Batch中还有波及
@PostConstruct 由JSR-250提供,在构造函数执行完之后执行,等价于xml配置文件中bean的initMethod
@PreDestory 由JSR-250提供,在Bean销毁之前执行,等价于xml配置文件中bean的destroyMethod
6.环境切换
@Profile 通过设定Environment的ActiveProfiles来设定以后context须要应用的配置环境。(类或办法上)
@Conditional Spring4中能够应用此注解定义条件话的bean,通过实现Condition接口,并重写matches办法,从而决定该bean是否被实例化。(办法上)
7.异步相干
@EnableAsync 配置类中,通过此注解开启对异步工作的反对,叙事性AsyncConfigurer接口(类上)
@Async 在理论执行的bean办法应用该注解来申明其是一个异步工作(办法上或类上所有的办法都将异步,须要@EnableAsync开启异步工作)
8.定时工作相干
@PropertySource:用于加载.properties 文件中的配置。例如咱们配置数据源时,能够把连贯数据库的信息写到 properties 配置文件中,就能够应用此注解指定 properties 配置文件的地位。
@EnableScheduling 在配置类上应用,开启打算工作的反对(类上)
@Scheduled 来申明这是一个工作,包含cron,fixDelay,fixRate等类型(办法上,需先开启打算工作的反对)
9.@Enable*注解阐明
这些注解次要用来开启对xxx的反对。 @EnableAspectJAutoProxy 开启对AspectJ主动代理的反对
@EnableAsync 开启异步办法的反对
@EnableScheduling 开启打算工作的反对
@EnableWebMvc 开启Web MVC的配置反对
@EnableConfigurationProperties 开启对@ConfigurationProperties注解配置Bean的反对
@EnableJpaRepositories 开启对SpringData JPA Repository的反对
@EnableTransactionManagement 开启注解式事务的反对
@EnableTransactionManagement 开启注解式事务的反对
@EnableCaching 开启注解式的缓存反对
10.测试相干注解
@RunWith 运行器,Spring中通常用于对JUnit的反对
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration 用来加载配置ApplicationContext,其中classes属性用来加载配置类
@ContextConfiguration(classes={TestConfig.class})
SpringMVC局部
@EnableWebMvc 在配置类中开启Web MVC的配置反对,如一些ViewResolver或者MessageConverter等,若无此句,重写WebMvcConfigurerAdapter办法(用于对SpringMVC的配置)。
@Controller 申明该类为SpringMVC中的Controller
@RequestMapping 用于映射Web申请,包含拜访门路和参数(类或办法上)
@ResponseBody 反对将返回值放在response内,而不是一个页面,通常用户返回json数据(返回值旁或办法上)
@RequestBody 容许request的参数在request体中,而不是在间接连贯在地址前面。(放在参数前)
@PathVariable 用于接管门路参数,比方@RequestMapping(“/hello/{name}”)申明的门路,将注解放在参数中前,即可获取该值,通常作为Restful的接口实现办法。
@RestController 该注解为一个组合注解,相当于@Controller和@ResponseBody的组合,注解在类上,意味着,该Controller的所有办法都默认加上了@ResponseBody。
@ControllerAdvice 通过该注解,咱们能够将对于控制器的全局配置搁置在同一个地位,注解了@Controller的类的办法可应用@ExceptionHandler、@InitBinder、@ModelAttribute注解到办法上, 这对所有注解了 @RequestMapping的控制器内的办法无效。
@ExceptionHandler 用于全局解决控制器里的异样
@InitBinder 用来设置WebDataBinder,WebDataBinder用来主动绑定前台申请参数到Model中。
@ModelAttribute 原本的作用是绑定键值对到Model里,在@ControllerAdvice中是让全局的@RequestMapping都能取得在此处设置的键值对。
@Mapper注解的的作用
1:为了把mapper这个DAO交給Spring治理
2:为了不再写mapper映射文件
3:为了给mapper接口 主动依据一个增加@Mapper注解的接口生成一个实现类
@Param注解
办法参数多余一个时尽量应用@Param注解进行润饰并指定名字,而后在Mapper文件中便能够通过相似#{username}形式进行获取,否则只能通过#{arg0},#{arg1}或者#{param1},#{param2}等形式进行获取。
当办法中的参数利用在动静SQL中时无论多少个参数,尽量应用@Param注解进行润饰并定义。
发表回复