Spring

1.注解

  @Value 使用在字段或方法上,用于注入普通数据  一般用于注入配置信息

  @Autowired 使用在字段或方法上,用于根据类型注入引用数据

  @Qualifier 使用在字段或方法上,结合 @Autowired,根据名称注入

  @Resource 使用在字段或方法上,根据类型或名称进行注入

2.spring的其他不常用注解

@Primary 被该注解标注的bean加载的优先级更高
@Profile 进行环境切换使用
两种指定激活环境的方式:
虚拟机参数位置加载:-Dspring.profiles.active=test
使用代码的方式设置环境变量:System.setProperty("spring.profiles.active", "test")
/**
 * SpringConfig
 *
 * @author 马春粮
 * @date 2023-07-15 23:43:45
 */
@Configuration  // 标注当前类是一个配置文件类 并且该类是一个bean
@ComponentScan("com.itheima")
@PropertySource("classpath:jdbc.properties")
@Import(OtherBean.class)
@MapperScan("com.itheima.mapper")
public class SpringConfig {
    
    @Bean
    public DataSource dataSource(
            @Value("${jdbc.driver}") String driver,
            @Value("${jdbc.url}") String url,
            @Value("${jdbc.username}") String username,
            @Value("${jdbc.password}") String password
    ) {
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setDriverClassName(driver);
        dataSource.setUrl(url);
        dataSource.setUsername(username);
        dataSource.setPassword(password);
        return dataSource;
    }

    @Bean
    public SqlSessionFactoryBean sqlSessionFactoryBean(DataSource dataSource) {
        SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
        sqlSessionFactoryBean.setDataSource(dataSource);
        return sqlSessionFactoryBean;
    }
    
}

3.AOP  aop思想实现方案

  动态代理技术,在运行期间,对目标对象的方法进行增强,代理对象同名方法内可以执行原有逻辑的同时嵌入执行其他增强逻辑或其他对象方法

  AOP 相关概念

    目标对象 target 被增强方法所在的对象

    代理对象 Proxy 对目标增强后的对象,客户端实际调用的对象

    连接点 Joinpoint 目标对象中可以被增强的方法

    切入点 Pointcut 目标对象中实际被增强的方法

    通知\增强 Advice 增强部分的代码逻辑

    切面 Aspect 增强和切入点的组合

    织入 Weaving 将通知和切入点组合动态组合过程

  五种通知类型:before 前置通知、after-returning 后置通知、around 环绕通知、after-throwing 异常抛出通知、after 最终通知,(在环绕通知中会传入切点参数)

before
posted @ 2023-07-16 23:38  record-100  阅读(41)  评论(0)    收藏  举报