-
默认的@Bean是单例的 @Scope(value="",proxyMode="")注解:指定范围,singleton,prototype(每次请求都会创建一个新的对象,为了区分,应该查看对象的hashcode), 采用哪种代理方式proxyMode查看全部
-
property文件是key-value键值对形式的文件, 加载资源文件: <context:property-placeholder location="classpath:/com/acme/jdbc.propertied"/> 加载这个文件后,可以再当前文件中采用${jdbc.url}这种形式来使用配置文件中的内容. 例如: <property name="url" value="${jdbc.url}"/> 如果使用注解则: 在类名前加上: @Configuration @ImportResource("classpath:/com/acme/propertied-config.xml")引入一个资源,对应一个xml文件中包含property_placeholder 在配置文件中使用username的时候需要注意:username输出有时会是登录用户的username,所以一般在配置文件中配置例如jdbc.username的形式以防止混淆.查看全部
-
基于Java的容器注解: 1.@Bean标识一个用于配置和初始化一个由SpringIoC容器管理的新对象的方法,类似于XML配置文件的<bean/> 2.可以在Spring的@Comonent注解的类中使用@Bean注解任何方法(仅仅是可以) 3.上一点中,通常使用的是@Configuration 例子: @Configuration //使用Configuration注解,相当于声明这个class为配置文件 public class AppConfig { @Bean //当没有指定名称时,默认使用方法名为bean的名称 public MyService myService() { return new MyServiceImpl(); //返回一个MyServiceImpl类的一个对象 } } @Bean注解的方法相当于: <bean id="myService" class="com.example.service.MyServiceImpl"/> @Bean(name = "myFoo" initMethod="init" destroyMethod="cleanup") //指定bean的名称为myFoo,该bean创建时调用init方法,销毁时调用cleanup方法查看全部
-
@Qualifier: 按类型自动装配可能多个bean实例的概况,可以使用@Qualifier注解缩小范围(或唯一指定), 也可以用于指定单独的构造器参数或方法参数 可用于注解集合类型变量. @autowired适用于字段,构造器,多参数的方法等这些允许参数级别使用@Qulifier注解缩小范围的情况. @Resource适用于成员变量,只有一个参数的setter方法. 所以在目标是构造器或一个多参数方法时,最好的方式时使用qulifier @qulifier注解最常用的方法: @Autowired @Qualifier("main") //在MovieCatalog中获取名称为main的bean private MovieCatalog movieCatalog; xml配置: <bean class="example.SimpleMovieCatalog"> <qualifier value="main"/> </bean>查看全部
-
可以通过添加注解给需要该类型的数组的字段或方法,以提供ApplicatonContext中的所有特定类型的bean @Autowired public void setMovieCatalogs(Set<MovieCatalog> movieCatalog) { this.movieCatalogs = movieCatalogs } 也可以用于装配key为String的Map @Autowired public void setMovieCatalog(Map<String,MovieCatalog> movieCatalog) { this.movieCatalogs = movieCatalogs } 如果希望数组有序,可以让bean实现org.springframework.core.Ordered接口活着使用@Order注解 Order中指定额数字越小,优先级就越大,默认是越小越优先查看全部
-
1、@Required(不常用)注解适用于bean属性的setter方法 仅仅表示受影响的bean属性必须在配置时呗填充,通过bean定义或通过自动装配一个明确的属性值 2、@Autowired注解为传统的setter方法、 a、可用于构造器或成员变量 b、默认情况下如果因找不到合适的bean将会导致Autowiring失败抛出异常,可以通过@Autowired(required=false)(bean非必需时)来避免 c、每个类只能有一个构造器被标记为(required=true) @Autowired的必要属性建议用@required注解查看全部
-
·bean名称是由BeanNameGenerator生成,默认生成的是 以类名为基础把第一个字母小写 当bean的名称,也可以自己定义,eg:@service("myService") ·可自定义bean命名策略,实现BeanNameGenertator接口并一定要包含一个无参构造器 使用自定义的命名策略实现类: <beans> <context:component-scan base-package="org.example" name-generrator="org.example.MyNameGenerator"/> //指定自定义的bean名称生成策略 </beans> ·spring2.5提供一个标识scope的注解@scope(表示bean的作用域),eg:@Scope("prtotype") ·可自定义scope策略,实现ScopeMetadataResolver接口并提供一个无参构造器 <con...-scan ba... scope-resolver="org.example.MyScopeResolver"/> 用于,eg:希望在每个线程中使用bean的实例 代理方式: ·可用scoped-proxy属性指定代理,有三个值可选:no,interfaces,targetClass <con...base-p... scoped-proxy="interfaces"/>查看全部
-
·元注解(注解的注解) ·<context:annotation-config/>仅会查找在同一个ApplicationContext中的bean注解 ·<context:component-scan>包含<context:annotation-config>的全部功能,通常在使用前者后,不用再使用后者. ·两者的区别: <context:componet-scan>----可以扫描基于类的注解 <context:annotation-config>----只能在完成bean注册之后去处理bean中的方法或者是成员变量的注解. ·<context:component-scan base-package="org.example"> //默认将使用@Component,@Repository,@Service,@Controller注解或者使用@Component的自定义注解的类注册到容器中,base-package扫描该包下的所有类 ·通过过滤器可修改上面的行为,下面的例子的XML配置忽略所有的@Repository注解并使用"Stub"代替 <beans> <context:component-scan base-package="org.example"> <context:include-filter type="regex" expression=".*Stub.*Repository"/> <context:exclude-filter type="annotation" expression="org.springframework.steretype.Repository"/> </context:component-scan> </beans> ·可使用use-default-filters="false"禁用自动发现与注册查看全部
-
bean初始化。。。查看全部
-
面向接口编程在IoC里得到广泛应用查看全部
-
过滤器查看全部
-
自动检测前者,检查类,后面,加载后检测成员变量~前者包括后者的全部功能 一般都前者查看全部
-
注解3查看全部
-
注解2查看全部
-
注解1查看全部
举报
0/150
提交
取消