栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring常用注解

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring常用注解

Spring常用注解

目录

Spring常用注解

IoC

创建对象        

属性注入

AOP

创建代理对象

通知(增强)

事务

配置类


IoC

创建对象        

Spring 针对 Bean 管理中创建对象提供以下注解

@Service:习惯上声明在Service层

@Controller:习惯上声明在Web层

@Repository:习惯上声明在Dao层

@Component:不属于以上三层的统一使用该注解

四个注解功能是一样的,都可以用来创建 bean 实例,无功能区分,仅字面不同。

属性注入

@Autowired:根据属性类型进行自动装配

@Qualifier:根据名称进行注入

                     这个@Qualifier 注解的使用,和上面@Autowired 一起使用

                     @Autowired

                     @Qualifier(value = "userDaoImpl")

@Resource:可以根据类型注入,可以根据名称注入(不建议使用,因为不是spring里面自带的注解)

                       @Resource //根据类型进行注入*

                       @Resource(name = "userDaoImpl") //根据名称进行注入

@Value:注入普通类型属性

               @Value(value = "abc")

AOP

创建代理对象

@Aspect:生成代理对象,声明在代理类的上面

通知(增强)

@Pointcut("execution(* com.wenbin.aopdemo1.dao.UserDao.*(..))"):提取公共切入点 要切入的类方法

以下注解的value属性里填写切入点

@Before:前置通知:被切入的方法执行之前执行(应用场景:各种校验)

@AfterReturning:后置通知:被切入的方法成功执行之后执行

@Around:环绕通知:被切入的方法执行之前 和 成功执行之后执行 分别执行

                   该注解声明的方法参数 ProceedingJoinPoint proceedingJoinPoint

                   proceedingJoinPoint.proceed();表示执行被切入的方法,在此前后切入对应增强逻辑

@AfterThrowing:异常通知:被切入的方法执行期间出现异常执行(应用:包装异常信息)

@After:最终通知:无论被切入的方法是否成功执行 在最终都进行执行(应用:统一管理资源)

事务

@Transactional:这个注解添加到类上面,也可以添加方法上面

                             如果把这个注解添加类上面,这个类里面所有的方法都添加事务

                             如果把这个注解添加方法上面,为这个方法添加事务

该注解的参数详细:

propagation:事务传播行为

ioslation:事务隔离级别:脏读、不可重复读、幻读

timeout:超时时间:事务需要在一定时间内进行提交,如果不提交进行回滚

readOnly:是否只读:读:查询操作,写:添加修改删除操作

rollbackFor:回滚:设置出现哪些异常进行事务回滚

noRollbackFor:不回滚:设置出现哪些异常不进行事务回滚

配置类

完全注解开发,功能替代 xml 配置文件

@Configuration:作为配置类,替代 xml 配置文件

@ComponentScan(basePackages = {"com.wenbin"}):扫描的指定包下的注解

@EnableAspectJAutoProxy(proxyTargetClass = true):开启 Aspect 生成代理对象

                                        参数true代表是要生成代理对象时强制使用CGLIB的方式

@EnableTransactionManagement:开启事务

以上注解声明在类上面,使该类作为一个配置类替代以下xml配置文件

 	
    
    
    
	
    

以下java代码写在配置类中替代以下配置文件 实现完全注解开发

   
    @Bean
    public DruidDataSource getDruidDataSource() {
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql:///jdbctest?useSSL=true&serverTimezone=UTC&rewriteBatchedStatements=true");
        dataSource.setUsername("root");
        dataSource.setPassword("root");
        return dataSource;
    }

    

    @Bean
    public JdbcTemplate getJdbcTemplate(DataSource dataSource) {
        //到 ioc 容器中根据类型找到 dataSource
        JdbcTemplate jdbcTemplate = new JdbcTemplate();
        //注入 dataSource
        jdbcTemplate.setDataSource(dataSource);
        return jdbcTemplate;
    }

    
    @Bean
    public DataSourceTransactionManager
    getDataSourceTransactionManager(DataSource dataSource) {
        DataSourceTransactionManager transactionManager = new DataSourceTransactionManager();
        transactionManager.setDataSource(dataSource);
        return transactionManager;
    }
    
        
        
        
        
    
    
    
        
    
    
    
        
        
    

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/685782.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号