欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

了解Spring框架

程序员文章站 2023-12-30 19:00:04
...

Spring容器框架

bean管理 构建容器 IOC控制反转

bean 对象标签
id/name 指定标识
class class位置(类全名)
parent 指定通用对象
abstract 该对象不直接创建, 通用对象

 <bean id="pp" class="model.Type2" init-method="init" abstract="true">
 	<property name="name" value="1111"></property>
 </bean>
 <bean id="my" parent="pp">
	<property name="id" value="2222"></property>
	<property name="name" value="ssss"></property>
 </bean>

singleton=“true | false” 单例模式
lazy-init=“true | false | dafault” 延迟处理
autowire="no | byName | byType | constructor | autodetect | default"自动注入
init-method=“method” springbean生命周期
destroy-method=“method”

factory-method=“method” 设置工厂类, 指定方法生产bean
factory-bean=“bean”
dependency-check(依赖检查,默认为“default”)
1、 none: 不进行依赖检查。
2、 objects: 只做对象间依赖的检查。
3、 simple: 只做原始类型和String类型依赖的检查
4、 all: 对所有类型的依赖进行检查。它包括了前面的objects和simple。
depends-on(依赖对象):这个Bean在初始化时依赖的对象,这个对象会在这个Bean初始化之前创建

**

scope 构建作用域

1、singleton Spring IOC容器中只会存在一个共享的bean实例
2、prototype 每次使用到, 都会产生一个新的bean实例
3、request 每次请求到, 都会产生一个新的bean实例
4、session 每个新的会话, 都会产生一个新的bean
5、global session 每次新的目标源(门户, 触发源)会话, 都会产生一个新的bean

property 属性标签
name 属性名称
value 属性值 与ref互斥
ref 引用spring对象id或名称
constructor-arg
index属性 指定构造参数的序号(从0开始)
type属性 指定构造参数的类型
ref属性 value属性

list/set/map/props

<list>
      	<bean class="		"></bean>
      </list>
<list>
          	<value>Happer</value>
<value>Smell</value>
          </list>
<map>
<entry key="1">
<ref bean="highTopic01"/>
</entry>
<entry key="2">
<ref bean="highTopic02"/>
</entry>
</map>

<props>
<prop key="driver">com.mysql.jdbc.Driver</prop>
<prop key="url">jdbc:com.mysql://localhost:3030/test</prop>
<prop key="username">root</prop>
<prop key="password">root</prop>
</props>

DI依赖注入, 装配

no

<property name="t" ref='a1' ></property>

byType 根据属性的类型, 自动查找部件装配—byType就是按Bean的Class的类型
被装配类中的setter方法的参数类型要与bean的class的类型一样,才能自动装配到
byName 根据属性的名称, (id或者name属性)自动查找部件装配
constructor 根据构造参数的类型, 自动查找部件装配到构造方法
如果都未符合, 将使用默认构造方法创建
autodetect byType和 constructor 选择, 有默认构造方法
default

调试

代码加载spring容器

ApplicationContext act=new ClassPathXmlApplicationContext("aa.xml");
Type2 t=(Type 2)act.getBean("my");

使用junit测试

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:aa.xml"})
public class junit_test{
@Autowired
Type t;
@Test
public void ee(){
System.out.println(t.getName());
}
}

获取容器部件

Autowired	根据byType
@Autowired
Type t;
Resource		根据于byName
    <dependency>
        <groupId>javax.annotation</groupId>
        <artifactId>javax.annotation-api</artifactId>
        <version>1.2</version>
    </dependency>
    
    @response(name="my")

Type2 t2;
Inject&Named 根据2种

<dependency>
      <groupId>javax.inject</groupId>
      <artifactId>javax.inject</artifactId>
      <version>1</version>
    </dependency>

@Inject
Type my;

@Inject
@Named("my")
Type2  t;
相关标签: spring 了解

上一篇:

下一篇: