spring
spring\框架使用时,先导入jar包,然后导入约束beans约束,在<bean>标签里面导入控制的user<bean name="user" class="com.ithaima.pojo.User"></bean>
IOC
inverse of control反转控制
将我们创建的对象反转了
以前对象的创建是由开发人员自己维护,包括依赖关系也是自己注入
使用了spring之后,对象的创建以及依赖关系可以由spring完成创建及注入
反转冬至就是反转的对象的创建方式,从我们自己创建反转给了程序(spring).
spring 的相关配置
id属性和name属性相关配置
id :Bean 起个名字. 在约束中采用 ID 的约束:唯一. 必须以字母开始,可以使用字母、数字、连字符、下划线、句话、冒号 id:不能出现特殊字符.<bean id=”bookAction”>
name:Bean 起个名字. 没有采用 ID 的约束. name:出现特殊字符.如果<bean>没有 id 的话 , name 可以当做 id 使用.* 整合 struts1 的时候:<bean name=”/loginAction” >
scop属性,bean 的作用范围
* singleton :默认值,单例的. (被标记为单例的,在spring容器中只会被标记为一个实例)
* prototype :多例的
* request :WEB 项目中,Spring 创建一个 Bean 的对象,将对象存入到 request 域中.
* session :WEB 项目中,Spring 创建一个 Bean 的对象,将对象存入到 session 域中.
* globalSession :WEB 项目中,应用在 Porlet 环境.如果没有 Porlet 环境那么 globalSession 相当于 session.
Bean 的生命周期的配置
通过配置<bean>标签上的 init-method 作为 Bean 的初始化的时候执行的方法,配置 destroy-method作为 Bean 的销毁的时候执行的方法。
销毁方法想要执行,需要是单例创建的 Bean 而且在工厂关闭的时候,Bean 才会被销毁.
用注解的方式代xml配置
<!-- Spring 的注解开发:组件扫描(类上注解: 可以直接使用属性注入的注解) -->需要在<beans>中倒入context约束然后在具体的类上使用注解
<context:component-scan base-package="com.itheima.spring.demo1"/>
Spring 的 的 Bean 管理的中常用的注解:
@Component: 组件.(作用在类上) 相当于<bean name="user" class="com.ithaima.pojo.User"></bean>
Spring 中提供@Component 的三个衍生注解:(功能目前来讲是一致的)
* @Controller :WEB 层
* @Service : 业务层
* @Repository : 持久层
这三个注解是为了让标注类本身的用途清晰,Spring
属性注入的注解:( 使用注解注入的方式, 可以不用提供 set )
@Value :用于注入普通类型.
@Autowired :自动装配:
* 默认按类型进行装配.
按名称注入:
* @Qualifier:强制使用名称注入.
@Resource 相当于:
* @Autowired 和@Qualifier 一起使用.
Bean 的作用范围的注解
@Scope:
* singleton: 单例
* prototype:多例
Bean 的生命周期的配置
@PostConstruct :相当于 init-method
@PreDestroy :相当于 destroy-method
aop