Spring5--p命名空间和c命名空间注入

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:p="http://www.springframework.org/schema/p"
       xmlns:c="http://www.springframework.org/schema/c"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd">

    <!--可以使用p命名空间和c命名空间进行注入-->

<!--    xmlns:p="http://www.springframework.org/schema/p"-->
<!--    xmlns:c="http://www.springframework.org/schema/c"-->

    <!--p命名空间注入,可以直接注入属性的值:property-->
<!--    <bean id="user" class="com.wang.pojo.User" p:name="小明" p:age="25"/>-->

    <!--c命名空间注入,通过构造器注入:construct-args-->
    <bean id="user2" class="com.wang.pojo.User" c:age="18" c:name="小明"/>

</beans>

<!--Bean的作用域  singleton:单例模式(Spring默认机制)-->
<!--    <bean id="user2" class="com.wang.pojo.User" c:age="18" c:name="小明" scope="singleton"/>-->

    <!--Bean的作用域  prototype:原型模式   每次从容器中get的时候,都会产生一个新对象-->
    <bean id="user2" class="com.wang.pojo.User" c:age="18" c:name="小明" scope="prototype"/>

其余的request、session、application这些只能在web开发中使用到。

ApplicationContext context = new ClassPathXmlApplicationContext("userbeans.xml");
User user = context.getBean("user2", User.class);
User user2 = context.getBean("user2", User.class);
System.out.println(user);
System.out.println(user.hashCode());
System.out.println(user2.hashCode());
System.out.println(user==user2);  // True   singleton
System.out.println(user==user2);  // false   prototype
上一篇:Shell编程之文本处理


下一篇:linux学习(2)