spring 常用注解解释 持续更新

@Repository  : 数据访问组件  也就是DAO层 用于操作数据库

@Autowired   : 可以对类成员变量,方法以及构造函数进行标注,完成自动壮派的工作,通过@Autowired的使用来消除get.set方法

@SpringBootApplication : 用在main方法之上,相当于@Configuration,@EnableAutoConfiguration,@ComponentScan 的组合,

@Configuration : 表示将该类左卫springboot配置文件类

@EnableAutoConfiguration : 表示程序启动的时候,自动加载springboot默认的配置

@ComponentScan : 表示程序启动的时候,自动扫描当前包以及子包所有的类,除了@Mapper都可以使用。扫描多个,同@MapperScan

@MapperScan:扫描标注有@Mapper的注解 扫描多个可以使用{},比如

@MapperScan({"com.bdaim.*.dao","com.bdaim.platform.modules.sys.dao"})

@EnableTransactionManagement   : //启用实物,要在对应方法之上加@Transactional

@Transactional  : 实质上是使用了JDBC的事物进行事务管理,是基于Spring的动态代理机制;必须放在public之上

@Component   :  放在DAO类之上,将该类纳入到spring管理容器当中

@Before  :  ("execution(* springboot ..*.*(..))")    //执行springboot下的子包以及子子包的方法,在方法执行前调用

@Pointcut  : ("execution(* *.perform(..))")   //定义切点,标记方法

@AfterReturning   :  ("performance()")   //切点执行成功之后执行  

@AfterThrowing   : ("performance()")    //切点抛出异常后执行   

@Service  :  用于业务逻辑层

@Controller : 表现层,也叫控制器,注解的bean会被spring-mvc框架所使用

@RunWith : 可以理解为测试运行器,例如@RunWith(JUnit4.class)就是指用JUnit4来运行

@SpringBootTest : 单元测试

@MockBean : 用於单元测试,可以将一个不存在的实力作为对象去测试代码的正确性 举例:

@RunWith(SpringRunner.class)
public class UserTest {
    @MockBean
    private UserMapper userMapper;

    @Test
    public void testCreateUser() {
        BDDMockito.given(userMapper.createUser("admin")).willReturn(
                Integer.valueOf(1));
        BDDMockito.given(userMapper.createUser("")).willReturn(
                Integer.valueOf(0));
        BDDMockito.given(userMapper.createUser(null)).willThrow(
                NullPointerException.class);

        Assert.assertEquals(Integer.valueOf(1), userMapper.createUser("admin"));
        //Assert.assertEquals(Integer.valueOf(0), userMapper.createUser(""));
        //Assert.assertEquals(Integer.valueOf(0), userMapper.createUser(null));
    }

}

 

PostConstruct 注释用于在依赖关系注入完成之后需要执行的方法上,以执行任何初始化。此方法必须在将类放入服务之前调用。支持依赖关系注入的所有类都必须支持此注释。即使类没有请求注入任何资源,用 PostConstruct 注释的方法也必须被调用。只有一个方法可以用此注释进行注释。应用 PostConstruct 注释的方法必须遵守以下所有标准:该方法不得有任何参数,除非是在 EJB 拦截器 (interceptor) 的情况下,根据 EJB 规范的定义,在这种情况下它将带有一个 InvocationContext 对象 ;该方法的返回类型必须为 void;该方法不得抛出已检查异常;应用 PostConstruct 的方法可以是 public、protected、package private 或 private;除了应用程序客户端之外,该方法不能是 static;该方法可以是 final;如果该方法抛出未检查异常,那么不得将类放入服务中,除非是能够处理异常并可从中恢复的 EJB。

1.@PostConstruct说明

     被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器调用一次,类似于Serclet的inti()方法。被@PostConstruct修饰的方法会在构造函数之后,init()方法之前运行。

2.@PreConstruct说明

     被@PreConstruct修饰的方法会在服务器卸载Servlet的时候运行,并且只会被服务器调用一次,类似于Servlet的destroy()方法。被@PreConstruct修饰的方法会在destroy()方法之后运行,在Servlet被彻底卸载之前。(详见下面的程序实践)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章