-
笔记基于java的容器注解
查看全部 -
Spring是什么
1、控制反转Ioc
2、AOP面向切面编程
查看全部 -
如何学习Spring
查看全部 -
pointcut方法表达式和组件扫描有关,如果还有扫描其他包需要写类名和包名。
查看全部 -
1、 从Spring3.0开始,Spring JavaConfig项目提供了很多特性,包括使用java而不是XML定义bean,比如@Configuration,@Bean,@Import,@DependsOn
2、 Component是一个通用注解,可用于任何bean
3、 @Repository,@Service,@Controller是更有针对性的注解
@Repository通常用于注解DAO类,即持久层
@Service通常用于注解Service类,即服务层
@Controller通常用于Controller类,即控制层(MVC)
4、 类的自动检测及Bean 的注册
为了能够检测这些类并注册相应的Bean,需要下面内容
在spring.xml配置文件中加上
<context:component-scan base-package=”org.example”/>
<context:componect-scan>包含<context:annotation-config>,通常使用前者后,不再使用后者
<context:component-scan>和<context:annotation-config>的区别:
Componect-scan可以扫描基于类的注解,
Annotation-config只能在完成bean的注册之后去处理bean中的方法,或者成员变量的注解
5、 元注解
许多Spring提供的注解可以作为自己的代码,即”元数据注解”,元注解是一个简单的注解,可以应用到另一个注解
注解中除了有value(),元注解还可以有其他的属性,允许定制。
6、 使用过滤器进行自定义扫描
默认情况下,类被自动发现并注册bean的条件是:使用@Component,@Repository,@Service,@Controller注解或者使用@Component自定义注解
可以通过过滤器修改上面的行为,如:下面例子的XML配置忽略所有@Repository注解并用”Stub”代替
<beans>
<context:component-scan base-package=”org.example”>
<context:include-filter type=”regex” expression=”.*Stub.*Repository”/>使用正则表达式判断
<context:exclue-filter type=”annotation” expression=”org.springframework.stereotype.Repository”/>
使用注解来判断
<context:component-scan>
</beans>
还可以使用use-default-filters=”false” 禁用自动发现与注册
7、 扫描过程中组件被自动检测,那么Bean名称是由BeanNameGenerator生成的(Spring注解中都会有个name属性用于显式设置Bean Name)
可自定义bean命名策略,实现BeanNameGenerator接口,并一定要包含一个无参数构造函数。
<beans>
<context:component-scan base-package=”org.example” name-generator=”org.example.MyNameGenerator”/>
</beans>
8、 作用域(Scope)
通常情况下自动查找的Spring组件,其scope是singleton,Spring2.5提供了一个标识scope的注解@Scope,如果没有定义作用域的情况下,spring会默认定义作用域为prototype;如果没有为bean指定value()的bean名字的话,ioc容器会将类名的第一个字母小写,作为beanName
也可以自定义scope策略,实现ScopeMetadataResolver接口并提供一个无参构造器
<beans>
<context:component-scan base-package=”org.example” scope-resolver=”org.example.MyScopeResolver”>
</beans>
9、 代理方式
可以使用scoped-proxy属性指定代理,有三个值可选:no,interfaces,targetClass
<beans>
<context:component-scan base-package=”org.example” scoped-proxy=”interfaces”/>
</beans>
查看全部 -
Spring查看全部
-
Spring的注入方式:①设值注入-get, set方法形式②查看全部
-
2-1 IOC及bean容器
查看全部 -
Bean的作用域
作用域是在Spring配置文件xml中作用的,写在bean文件的scope中
Singleton:属于请求两次对象产生的hashcode的值是一样的,而两个Test测试方法不能测试,因为Test方法在执行前会进行before和after,会打开和关掉对配置的请求,
Prototype:每次请求都会创建新的实例,不会再次使用,会被GC回收掉,destroy方式不生效。
Request和session略过
Global session:当我们在应用中,例如财务系统,oa系统中,请求一次会跳转到其他的系统,一般两个系统的session不会一样的,但是global session会将请求的对象带到另一个系统内,此作比喻说明。
查看全部 -
在加载InjectionServiceImpl实例化对象a1中,a1对象会执行injectionDAO变量的构造方法,经过引用ref,到实例化InjectionDAOImpl对象a2,将对象赋值给a1对象中的属性injectionDAO
查看全部 -
在加载InjectionServiceImpl实例化对象a1中,a1对象里边有injectionDAO这个属性,经过引用ref,到实例化InjectionDAOImpl对象a2,将对象赋值给a1对象中的属性injectionDAO
查看全部 -
7-1 aspectj介绍及pointcut注解,笔记引用
查看全部 -
6-3 自动代理选定的bean
查看全部 -
6-3 ProxyFactoryBean
查看全部 -
11111
查看全部
举报