Spring注解整理


1、Spring Aspects注解

1.1 @EnableSpringConfigured

  • @Configurable等配合使用;
  • 告诉spring容器被标记的bean不是被其管理的类。
  • 具体参考

@Configuration
@Import(........
@EnableSpringConfigured
public abstract class SpringWebApplicationConfig extends WebMvcConfigurerAdapter {
@Autowired
Environment environment;

@Value(.......
 
@Bean
public ResourceBundleThemeSource themeSource()
  {
   ResourceBundleThemeSource resourceBundleThemeSource = new ResourceBundleThemeSource();
   resourceBundleThemeSource.setBasenamePrefix("theme-");
   return resourceBundleThemeSource;
  }
}


2、Spring Beans注解

2.1 @Autowired

  • 用于Spring Bean的自动装配,在spring容器启动时,会自动获取对应的Bean;
  • 默认是按照类型进行装配,若想按照名称进行装配可以配合@Qualifier使用,如下例子:
@Autowired() 
@Qualifier("baseDao")     
private BaseDao baseDao;   
  • 如果添加了该注解,默认状态下,Bean不能为null,若存在Bean为null的情况,可以配置其参数"required",代码如下:
@Autowired(required = false) 
private BaseDao baseDao; 

2.2 @Configurable

  • 用于标记该类型不是被spring容器所管理(该Bean不是在spring容器启动时就被创建);
  • 被标记后,在其内部可以注入其他的被spring容器管理的Bean;
  • 当我们new被标记类型的时候,注入在该类型中的Bean也会被包含在其中;
  • 具体参考
  • 参数value (String类型):用作配置模板的bean定义的名称,默认值为"",空字符串;
  • 参数autowire(Autowire枚举):依赖项是否要自动注入,默认 Autowire.NO(不自动装配),其他可选项Autowire.BY_NAME(通过名称注入)和Autowire.BY_TYPE(通过类型注入);
  • 参数dependencyCheck(boolean类型):是否对配置的对象执行依赖项检查,默认为false:
  • 参数preConstruction(boolean类型):依赖项是否在对象构造之前被注入,默认为false。

@Configurable(value = "service",autowire = Autowire.BY_NAME,
              dependencyCheck = true,preConstruction = true)
@EnableSpringConfigured
public class DocService {

    @Autowired
    private MaterialDocRepository docRepository;
 }
 

2.3 @Qualifier

  • 自动装配时,可以将此注释用于字段或参数,作为候选bean的限定符;
  • 属性value(String类型):限定的Bean名称,默认为""。
@Service(dService)
public class DocService extends BaseService {

    @Autowired
    @Qualifier(value = "doc")//限定的Bean名称
    private MaterialDocRepository docRepository;
    
}

@Repository(value = "doc")//默认的名称为类名首字母小写
public interface MaterialDocRepository extends JpaRepository<MaterialDoc,Long> {

} 

@Autowired(required = false)//可能不存在该类型实例   
public void setUserDao(@Qualifier("dService") DocService docService) {   
    this.docService = docService;   
} 

  • 用于注释其他定制注释,被注释的定制注释又可以用作限定符;

@Target({ElementType.TYPE,ElementType.FIELD,ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
@Qualifier
public @interface Oracle {

}

public class TestBean {
	
	private DataSource mysqlDataSource;
	
	private DataSource oracleDataSource;
 
	@Autowired
	public void initDataSource(@Oracle DataSource oracleDataSource){
		this.oracleDataSource = oracleDataSource;
	}
	
	...

}

2.4 @Lookup

待续 …

1 Spring基本特征 6 2 Spring的组成 6 2.1 Spring的jar包 6 2.2 Spring配置文件 7 2.3 Spring API 8 3 Spring基本功能详解 8 3.1 SpringIOC 8 3.2别名Alias 11 别名拓展: 11 3.3 Spring容器内部对象的创建 12 Spring容器内部对象创建拓展: 12 3.3.1使用类构造器实例化(默认无参数) 14 3.3.2使用静态工厂方法实例化(简单工厂模式) 14 3.3.3初始化(创建)bean时机 15 Lazy-init初始化bean的时机拓展: 15 3.4 Bean的作用域 16 Scope单例多例作用域拓展: 16 3.4.1 singleton(默认值) 16 3.4.2 prototype 17 3.4.3 Request 17 3.4.4 Session 18 3.4.5 Global session 18 3.4.6 指定Bean的初始化方法和销毁方法 18 Bean的初始化和销毁拓展: 18 Spring的IOC总结: 20 3.5 依赖注入(DI) 20 3.5.1 使用构造器注入 20 3.5.2 使用属性setting方法进行注入 21 3.5.3 装配list集合 22 3.5.4 装配set集合 22 3.5.5 装配map 22 3.5.6 装配Properties 23 3.6 注解注入 23 注解注入拓展: 23 3.6.1 @Autowired 26 3.6.2 @Qualifier 27 3.6.3 @Resource 27 3.6.4 @PostConstruct 28 3.6.5 @PreDestroy 28 注解注入拓展: 28 3.7扫描注入 30 注解扫描拓展: 32 Mvc用注解写: 34 Spring容器IOC和di的整个启动过程: 38 3.8 spring中的继承 38 拓展spring为类中的属性赋值: 40 小结: 47 面向接口编程: 47 4 面向切面编程 52 4.1 代理模式 52 代理模式拓展: 52 4.1.1 JDK动态代理 58 JDK动态代理拓展: 59 4.1.2 CGLIB做代理 66 CGLIB动态代理拓展: 68 4.1.3 Spring的动态代理 71 4.2 AOP编程 71 4.2.1概念: 71 SpringAOP概念拓展: 73 之前实现了目标方法的动态调用,现在来实现切面的动态调用。 74 4.2.2 AOP实现的两种模式 78 4.2.2.1 xml形式 78 XML形式拓展: 81 异常通知处理例子: 91 不用spring异常通知,另一种处理异常 96 4.2.2.2Aop注解形式(了解) 99 注解注入拓展: 103 5 Spring数据库 106 5.1 Spring+JDBC 106 5.1.1 Jdbc编程特点 106 5.1.2引入DataSource 106 5.1.3 核心类JdbcTemplate 106 5.1.4 使用JdbcTemplate 106 5.1.5 继承JdbcDaoSupport 107 5.1.6 使用properties文件 107 5.1.7 RowMapper的使用 107 拓展: 108 DataSource注入的三种方式: 108 5.1.8声明式事务管理 116 5.1.8.1Spring的事务管理器 117 5.1.8.2Spring事务的传播属性 117 5.1.8.3Spring事务的隔离级别 117 拓展: 118 5.1.8.4以XML配置的 形式 119 拓展: 120 5.1.8.5以注解方式配置 125 拓展: 127 5.1.9使用CGLIB以XML形式配置事务 130 5.2 Spring+Hibernate 131 5.2.1 HibernateTemplate模板 131 5.2.2 声明式事务 131 配置XML文件 131 拓展: 132 注解形式: 137 拓展: 138 6 Struts2+spring+hibernate 141 6.1 需要添加的jar包 141 6.2 Spring融合web服务器 141 6.3 struts.xml文件 143 6.4 OpenInSessionView 143 拓展: 144 实例: 146
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值