spring

普通的bean

 

 动态bean方法,必须是有返回值的额

静态工厂bean:方法的返回值是一个静态(static)的

spring中的scope属性:

(1) singleton:单态模式。即在整个 Spring 容器中,使用 singleton 定义的 Bean 将是单例的, 只有一个实例。默认为单态的。

(2)prototype:原型模式。即每次使用 getBean 方法获取的同一个<bean />的实例都是一个 新的实例。

(3)request:对于每次 HTTP 请求,都将会产生一个不同的 Bean 实例。

(4)session:对于每个不同的 HTTP session,都将产生一个不同的 Bean 实例。

(5)global session:每个全局的 HTTP session 对应一个 Bean 实例。典型情况下,仅在使用 portlet 集群时有效,多个 Web 应用共享一个 session。一般应用中,global-session 与 session 是等同的。 

注意: (1)对于 scope 的值 request、session 与 global session,只有在 Web 应用中使用 Spring 时, 该作用域才有效。

(2)对于 scope 为 singleton 的单例模式,该 Bean 是在容器被创建时即被装配好了。

(3)对于 scope 为 prototype 的原型模式,Bean 实例是在代码中使用该 Bean 实例时才进行 装配的。

</bean>标签的id属性和name属性

一般情况下都是用id属性的,除非bean中含有特殊字符才使用name(定义id只可以以字母开头),在没有id属性的时候name属性的作用和id是一样的,

 

注入分类:设值注入、构造注入          也可通过内部bean实现注入

设值注入:

当指定 bean 的某属性值为另一 bean 的实例时,通过 ref 指定它们间的引用关系。ref 的值必须为某 bean 的 id 值。

(1)、

(2)使用ref标签也可以调用

构造注入:构造注入是指,在构造调用者实例的同时,完成被调用者的实例化。

命名空间注入:

p 命名空间注入:采用设值注入方式,故需要有相应的 setter ;c 命名空间注入:采用构造注入方式,故需要有相应的构造器 

 

SPEL注入:SPEL 表达式以#开头,后跟 一对大括号

 主文件:包含关系的配置文件,用户管理其他配置文件

也可以把spring-base.xml、spring-student.xml、spring-teacher.xml使用spring-*.xml代替,但是同时主文件不能以spring-开头。

二、配置组件扫描器

需要导入aop的jar包增加约束,约束在 %SPRING_HOME%\docs\spring-framework-reference\html\xsd-configuration.html 文件中。 

同时也需要在类上面实现注解——@repository、@service、@controller、@entity分别对应数据库层、逻辑服务层、控制器层、实体类层

按类型注入域属性@Autowired,该注解默认使用按类型自动装配 Bean 的方式。 

Bean 的生命始末@PostConstruct 与@PreDestroy 

也可使用JavaConfig生成bean,例:

spring中的AOP示例:

定义和使用域属性

对于一个 POJO 类,在类上使用@Configuration 注解,将会使当前类作为一个 Spring 的 容器来使用,用于完成 Bean 的创建。

在该 JavaConfig 的方法上使用@Bean,将会使一个普通方法所返回的结果变为指定名称 的 Bean 实例。 

by_name和by_type都可以使与属性自动注入

 

posted @ 2018-04-08 19:29  时光易逝  阅读(100)  评论(0编辑  收藏  举报