A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

第一步:导入包
commons-logging-1.2.jar
spring-beans-3.2.13.RELEASE.jar
spring-context-3.2.13.RELEASE.jar
spring-core-3.2.13.RELEASE.jar
spring-expression-3.2.13.RELEASE.jar
spring开头的 4个包自带的……
commons-log4j需要https://repo.spring.io 下载

第二步:配置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"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:p="http://www.springframework.org/schema/p"
       xmlns:c="http://www.springframework.org/schema/c"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans.xsd
           http://www.springframework.org/schema/context
           http://www.springframework.org/s ... ing-context-3.2.xsd
           http://www.springframework.org/schema/tx
           http://www.springframework.org/schema/tx/spring-tx.xsd
           http://www.springframework.org/schema/aop
           http://www.springframework.org/schema/aop/spring-aop.xsd">



       <!-- bean元素声明spring创建的对象实例,id属性指定对象唯一标识符,可以设置多个别名,用name属性替换id属性指定,用逗号隔开。 class属性指定被声明的实例对应类 -->
       <bean id="helloSpring" class="com.big3.dao.impl.HelloSpring" >
                       <!-- 指定对象被赋值的属性名赋值-->
                       <property name="who" value="Spring" />                                  
       </bean>

       <bean id="greyInk" class="com.big3.dao.impl.GreyInk" ></bean>

       <bean id="colorink" class="com.big3.dao.impl.ColorInk" ></bean>

       <bean id="a4paper" class="com.big3.dao.impl.TextPaper" >
                       <property name="charPerLine" value="8" />
                       <property name="linePerPage" value="6" />
       </bean>
       <!-- value给常量和变量赋值 -->
       <bean id="b5paper" class="com.big3.dao.impl.TextPaper" >
                       <property name="charPerLine" value="6" />
                       <property name="linePerPage" value="5" />
       </bean>
       <!-- ref赋对象值 -->
       <bean id="printer" class="com.big3.dao.impl.Printer" >
                       <property name="ink" ref="colorink" />
                       <property name="paper" ref="a4paper" />
       </bean>

    <bean id="usLogger" class="com.big3.aop.UserServiceLogger"/>

    <!--通过构造方法注入参数,也可以用C:标签-->
    <bean id="use" class="com.big3.pojo.User" c:_0="ssss" c:_1="1000">
        <!--<constructor-arg index="0" >
            <value>zsc</value>
        </constructor-arg>
        <constructor-arg index="1" >
            <value>18</value>
        </constructor-arg>-->
    </bean>
    <bean id="userServiceImpl" class="com.big3.service.impl.UserServiceImpl">
        <!-- 使用CDATA处理特殊字符 -->
        <property name="specialCharacter1">
            <value><![CDATA[P&G]]></value>
        </property>
        <!-- 将特殊字符转为实体引用 -->
        <property name="specialCharacter2">
            <value>P&G</value>
        </property>
        <!-- JAVABEN赋值 -->
        <property name="innerBean">
            <bean class="com.big3.pojo.User">
                <property name="name"><value>zsc</value></property>
                <property name="age"><value>18</value></property>
            </bean>
        </property>
        <!-- List赋值,里面还可以加<bean>和<ref>标签 -->
        <property name="list">
            <list>
                <value>000</value>
                <value>111</value>

            </list>
        </property>
        <!-- 数组赋值,里面也可以用list换掉array标签 -->
        <property name="array">
            <array>
                <value>aaaa</value>
                <value>bbbb</value>
            </array>
        </property>
        <!-- set赋值 -->
        <property name="set">
            <set>
                <value>9999</value>
                <value>8888</value>
            </set>
        </property>
        <!-- Map赋值 -->
        <property name="map">
            <map>
                <entry>
                    <key><value>user</value></key>
                    <!--<value>100</value>-->
                    <bean  class="com.big3.pojo.User" p:name="123456" p:age="100"/>

                </entry>

            </map>
        </property>
        <!-- Properties赋值 -->
        <property name="props">
            <props>
                <prop key="name">wwww</prop>
                <prop key="age">50</prop>
            </props>
        </property>
        <!-- 空字符串赋值 -->
        <property name="emptyValue">
            <value></value>
        </property>
        <!-- null赋值 -->
        <property name="nullValue">
            <null/>
        </property>
    </bean>
</beans>

可以通过注解方法,就不用在xml文件里配置bean了,只需加入如下代码就可

<!--指定扫描注解定义的包-->
<context:component-scan base-package="cn.kgc.service,cn.kgc.pojo"></context:component-scan>
1
2
只需在类里加上注解即可:
@PropertySource(“zscbbs.properties”) //在类前面加入,引入配置文件
@Value("${user}") //给属性赋配置文件里的值

@ImportResource 的作用是导入Spring的配置文件,让配置文件里面的内容生效。

@Configuration 配置类,类似于配置文件
@Bean

@Component 实现Bean组件的定义
@Repository 标注DAO类
@Service 标注业务类
@Controller 标注控制器类,也就是servlet类

@Resource 对类的成员变量和方法进行标注,默认按 byName自动注入,JSR-250规范定义的注解,单独使用

@Autowired 对类的成员变量和方法进行标注,按byType自动注入,属于spring框架,和@Qualifier一起使用
@Qualifier(“userDao”)

1、 @Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法上。
2、 @Autowired默认按类型装配(这个注解是属业spring的),默认情况下必须要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为false,如:@Autowired(required=false) ,如果我们想使用名称装配可以结合@Qualifier注解进行使用
3、@Resource(这个注解属于J2EE的),默认按照名称进行装配,名称可以通过name属性进行指定,如果没有指定name属性,当注解写在字段上时,默认取字段名进行安装名称查找,如果注解写在setter方法上默认取属性名进行装配。当找不到与名称匹配的bean时才按照类型进行装配。但是需要注意的是,如果name属性一旦指定,就只会按照名称进行装配。
4.一个类的成员变量是List<>或者Map<>时,如果类型用接口类型,用@Autowired或者@Resource注解,自动会把此接口的实现类对象保存在集合里。


1 个回复

倒序浏览
奈斯
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马