其他分享
首页 > 其他分享> > Spring5--p命名空间和c命名空间注入

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

标签:user2,--,System,User,println,user,命名,Spring5,out
来源: https://blog.csdn.net/Silentli20/article/details/116482420