基本Spring配置和常用特性配置

注解扫描
<context:component-scan base-package="com.igeek.day2"/>

spring 常用注解@Component: 将类标记为Spring的托管Bean。可以与@Autowired和@Resource一起使用来实现依赖注入。
@Service: 与@Component作用相同,但在表示业务逻辑层的类上使用更为清晰。
@Repository: 与@Component作用相同,但在表示数据访问层的类上使用更为清晰。
@Controller: 与@Component作用相同,但在表示控制器层的类上使用更为清晰。
@Autowired: 自动装配Bean。可以用于构造方法、属性和方法上。Spring会自动查找匹配类型的Bean并将其注入。
@Resource: 自动装配Bean,与@Autowired类似,但具有更多的选项。可以通过name属性指定Bean的名称。
@Qualifier: 结合@Autowired或@Resource使用,指定注入的Bean名称。
@Value: 注入属性值。可以用于构造方法、属性和方法,支持字面值和Spring表达式。
@ComponentScan: 启用组件扫描。可以通过basePackages属性指定需要扫描的包名。
@Configuration: 表示一个配置类,用于替代XML配置文件。
@Bean: 在配置类中使用,用于声明一个Bean。
@PostConstruct: 在Bean初始化之后调用的方法上使用,在方法上添加一些额外的初始化逻辑。
@PreDestroy: 在Bean销毁之前调用的方法上使用,用于在销毁之前执行一些清理操作。

  1. 基本的Spring配置

    • 配置命名空间和XML模式
    • 使用<beans>元素作为根元素来定义Spring Bean的配置CopyCopy
  2. 组件扫描

    • 使用<context:component-scan>元素来启用自动组件扫描CopyCopy
    • base-package属性指定需要扫描的基础包CopyCopy
  3. Bean的创建和初始化

    • 使用<bean>元素定义一个Spring BeanCopyCopy
    • name属性指定Bean的名称Copy
    • class属性指定Bean的类名CopyCopy
    • scope属性指定Bean的作用域CopyCopy
    • 使用<property>元素设置Bean的属性值CopyCopy
    • value属性指定属性的字面值Copy
    • ref属性指定属性的引用值CopyCopy
  4. 工厂方法创建Bean

    • 使用静态工厂方法创建Bean,通过factory-method属性指定静态工厂方法的名字CopyCopy
    • 使用实例工厂创建Bean,通过factory-bean属性指定实例工厂的实例名,通过factory-method属性指定实例工厂方法的名字CopyCopyCopy
  5. 依赖注入

    • 使用<property>元素进行依赖注入,通过name属性指定依赖的属性名,通过value属性指定属性的字面值,通过ref属性指定属性的引用值CopyCopyCopyCopyCopyCopy
  6. 生命周期回调

    • 使用init-method属性指定Bean初始化时需要调用的方法CopyCopy
    • 使用destroy-method属性指定Bean销毁时需要调用的方法CopyCopy
  7. 后处理Bean

    • 定义一个后处理Bean,可以在Bean实例化和初始化之前或之后进行一些自定义的处理操作

 applicationContext.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!--静态工厂方法-->
    <bean name="bean2" class="com.igeek.day2.Bean2"  factory-method="getInstance"/>

<!--    实例工厂-->
    <bean name="bean3Fac" class="com.igeek.day2.Bean3Factory"/>
<!--    产品bean3-->
    <bean name="bean3" factory-bean="bean3Fac" factory-method="createBean3"/>
<!--创建date对象-->
    <bean name="date" class="java.util.Date"/>
    <bean name="user" class="com.igeek.day2.entity.User" scope="prototype">
        <property name="name" value="lisi"/>
        <property name="age" value="335"/>
<!--        <property name="birth" value="2000-01-01"/>-->
        <property name="birth" ref="date1"/>
    </bean>
<!--    日期工厂-->
    <bean name="fmt" class="java.text.SimpleDateFormat">
        <constructor-arg value="yyyy-MM-dd"/>
    </bean>
    <bean name="date1" factory-bean="fmt" factory-method="parse">
        <constructor-arg value="2000-01-01"/>
    </bean>
    <bean name="bean4" class="com.igeek.day2.Bean4Factory" scope="prototype" />
<!--    作用域scope="prototype"-->

    <bean name="life" class="com.igeek.day2.LifeCycle" init-method="show" destroy-method="destory"/>
<!--    后处理bean-->
    <bean class="com.igeek.day2.DemoPoce"/>
</beans>

  applicationContext.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!--静态工厂方法-->
<bean name="bean2" class="com.igeek.day2.Bean2" factory-method="getInstance"/>

<!-- 实例工厂-->
<bean name="bean3Fac" class="com.igeek.day2.Bean3Factory"/>
<!-- 产品bean3-->
<bean name="bean3" factory-bean="bean3Fac" factory-method="createBean3"/>
<!--创建date对象-->
<bean name="date" class="java.util.Date"/>
<bean name="user" class="com.igeek.day2.entity.User" scope="prototype">
<property name="name" value="lisi"/>
<property name="age" value="335"/>
<!-- <property name="birth" value="2000-01-01"/>-->
<property name="birth" ref="date1"/>
</bean>
<!-- 日期工厂-->
<bean name="fmt" class="java.text.SimpleDateFormat">
<constructor-arg value="yyyy-MM-dd"/>
</bean>
<bean name="date1" factory-bean="fmt" factory-method="parse">
<constructor-arg value="2000-01-01"/>
</bean>
<bean name="bean4" class="com.igeek.day2.Bean4Factory" scope="prototype" />
<!-- 作用域scope="prototype"-->

<bean name="life" class="com.igeek.day2.LifeCycle" init-method="show" destroy-method="destory"/>
<!-- 后处理bean-->
<bean class="com.igeek.day2.DemoPoce"/>
</beans>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值