spring bean的简介以及手动装配、自动装配、注解装配且包含实际demo

bean

  • JavaBeans 是 Java 中特殊的类,可以将多个对象封装到一个bean对象中
  • 特点是可序列化: 提供无参构造器,提供 getter 和 setter 方法访问对象的属性。
  • 被Spring管理的对象统称为Bean,一个bean对应一个实例对象

基本配置


<bean id="usert" class="com.hou.pojo.UsetT" name="u1,u2" >
    <property name="name" value="kun"/>
bean>

alias 别名


<bean id="user" class="com.hou.pojo.User">
    <constructor-arg name="name" value="hou">constructor-arg>
bean>
<alias name="user" alias="user2"/>

合并bean文件


<beans >
    
    <import resource="beans1.xml"/>
    <import resource="beans2.xml"/>
    <import resource="beans3.xml"/>
beans>

bean的作用域

  1. singleton单例模式(默认)
  • Spring默认的scope
  • 表示Spring容器只创建一个bean的实例
  • Spring在创建第一次后会缓存起来,之后不再创建
  • 对应设计模式中的单例模式
  1. prototype原型模式
  • 线程每次调用这个bean都新创建一个实例
  • user.hashCode() 实例标识码
  1. web 其余的scope只能在web开发中使用
  • Request: 表示每个request作用域内的请求只创建一个实例。
  • Session: 表示每个session作用域内的请求只创建一个实例。
  • GlobalSession: 这个只在porlet的web应用程序中才有意义,它映射到porlet的global范围的session。如果普通的web应用使用了这个scope,容器会把它作为普通的session作用域的scope创建。

demo: 手动装配+xml

步骤

  • 定义类: java
  • 定义bean: xml, 关联类,通过property注入数据,通过ref配置bean和bean之间的关联关系
  • 调用bean: java
// 启动: 打开工程 =》idea . => 右键MyTest4.java启动 =》 run  
// .
// ├── main
// │   ├── java
// │   │   └── com
// │   │       └── ah
// │   │           └── paul
// │   │               ├── Dog.java
// │   │               └── Person.java
// │   └── resources
// │       └── beans.xml
// └── test
//     └── java
//         └── MyTest4.java
// 1.1 定义类: Dog
// src/main/java/com/ah/paul/Dog.java
package com.ah.paul;
public class Dog {
   
    public void action(){
   
        System.out.println("wang~");
    }
}
// 1.2 定义类: Person
// src/main/java/com/ah/paul/Person.java
package com.ah.paul;
public class Person {
   
    // 构造函数
    public Person() {
   }
    // name: 属性和他的set/get方法
    private String name;
    public String getName() {
   return name;}
    public void setName(String name) {
   this.name = name;}
    // dog: 属性和他的set/get方法
    private Dog dog;
    public Dog getDog() {
   return dog;}
    public void setDog(Dog dog) {
   this.dog = dog;}
}
// 2 定义bean 
// src/main/resources/beans.xml
// 
<bean id="dog" class="com.ah.paul.Dog"/>
<bean id="person" class="com.ah.paul.Person">
    <property name="name" value="paul"/>
    <property name="dog" ref="dog"/>
</bean>
// 3. 测试: 调用bean 
// src/test/java/MyTest4.java
import com.ah.paul.Person;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class MyTest4{
   
    public static void main(String[] args) {
   
        ApplicationContext context 

你可能感兴趣的:(java,spring,java,后端)