applicationContext.xml是Spring的配置文件,当然可以不用这个名称,在加载的时候指定即可,不过为了减少必要的报错,建议初期还是使用这个名称吧,毕竟这是spring默认的名称。
一、applicationContext.xml作用:
我们学Spring的主要目的还是因为Spring能充当我们容器管理的作用,这个作用主要体现在:
控制反转: Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们。
面向切面的编程(AOP): Spring支持面向切面的编程,并且把应用业务逻辑和系统服务分开。
容器: Spring 包含并管理应用中对象的生命周期和配置。
MVC框架: Spring的WEB框架是个精心设计的框架,是Web框架的一个很好的替代品。
事务管理: Spring 提供一个持续的事务管理接口,可以扩展到上至本地事务下至全局事务(JTA)。
异常处理: Spring 提供方便的API把具体技术相关的异常(比如由JDBC,Hibernate or JDO抛出的)转化为一致的unchecked 异常。
这里不详细讲解Spring框架,但作用大概就这几个,当然还有管理各类ORM框架等,不在这里讨论。
由于applicationContext.xml文件 Spring的配置文件,所以applicationContext.xml的作用当然就是用来配置Spring框架所需的信息了。
二、applicationContext.xml典型文件内容:
<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:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.2.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.2.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.2.xsd">
<!-- 配置组件扫描器,使用注解方式开发,不用配置dao和service -->
<!-- 在springmvc.xml文件中也可以配置这个属性 -->
<context:component-scan base-package="com.edu.test"/><!--这篇文章先不说扫描注入-->
<!--依赖注入->
<bean id=”helloworld” class=”com.dh.spring.HelloWorld” singleton=”true” depends-on=”date” lazy-init=”false” init-mathod=”init” destory-method=”destory”/>
<!-- 数据源 -->
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/test" />
<property name="username" value="root" />
<property name="password" value="" />
</bean>
<!-- 配置session工厂 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="configLocation" value="classpath:mybatis-config.xml"/>
</bean>
<!-- 事务管理器 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<!-- 配置AOP通知 -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<!-- 配置事务属性 -->
<tx:attributes>
<!-- 添加事务管理的方法 -->
<tx:method name="save*" propagation="REQUIRED"/>
<tx:method name="delete*" propagation="REQUIRED"/>
<tx:method name="update*" propagation="REQUIRED"/>
<tx:method name="select*" read-only="true"/>
</tx:attributes>
</tx:advice>
<!-- 配置AOP,为添加事务管理的操作配置AOP -->
<aop:config>
<!-- 引入的Spring定义的事务通知,需要使用aop:advisor -->
<!-- 下面难 -->
<aop:advisor advice-ref="txAdvice"
pointcut="execution(* com.edu.test.service.*.*(..))"
/>
</aop:config>
</beans>
三、配置内容详解:
-
beans:
applicationContext.xml文件的根元素,所有的内容都需要包含在beans的标签中。 -
xmlns:
这是xml namespace即xml命名空间的简称,主要用于引入一些.xsd文件(也就是说xmlns后面的连接就是连接到相应的.xsd文件网站的,.xsd文件里面有特定的配置,比如xmlns:aop=”http://www.springframework.org/schema/aop”就是加载aop切面的),xmlns冒号后面的是这个.xsd的前缀,如果后续使用的时候,直接就<aop: 如aop:config即可。这是xml namespace即xml命名空间的简称,主要用于引入一些.xsd文件(也就是说xmlns后面的连接就是连接到相应的.xsd文件网站的,.xsd文件里面有特定的配置,比如xmlns:aop=”http://www.springframework.org/schema/aop”就是加载aop切面的),xmlns冒号后面的是这个.xsd的前缀,如果后续使用的时候,直接就<aop: 如aop:config即可。 -
xsi:schemaLocation:
其中xsi是xmlns:xsi中的xsi,schemaLocation是http://www.w3.org/2001/XMLSchema-instance中的一个属性(了解即可,不需要深入),这个xsi:schemaLocation的作用就是帮你定位到对应的.xsd文件的。 -
bean标签:
▶id属性:用于指定Bean的名称,在Bean被依赖时使用,在获取Bean时使用等
▶name属性:用于指定Bean的别名
▶class属性:用于指定Bean的来源,即创建要创建的Bean的class类(需要全限定名)
▶singleton属性:用于指定当前Bean的创建模式,若值为true表示为单例模式,false表示原型模式(prototype)
▶depends-on属性:用于指定当前Bean的依赖Bean,强制指定的Bean在当前Bean初始化之前先完成初始化
▶init-method属性:用于指定当前Bean的初始化方法,在Bean实例创建好后,首先会调用其指定名称的方法
▶destory-method属性:用于指定当前Bean的销毁方法,在Bean即将被销毁之前会自动调用该属性指定的方法
▶lazy-init属性:用于指定当前Bean的初始化时间,若值为true表示在初次调用时才会自动创建实例并初始化,false表示在IoC容器创建的时候就会完成创建和初始化
▶autowire属性:用于指定当前Bean的依赖关系的自动注入方式,其有五个值:
▷byName值:表示通过id名称来自动匹配;
▷byType值:表示通过class指定的类型来自动装配;
▷constructor值:表示使用构造函数的参数进行自动装配(参数的类型匹配);
▷autodetect值:表示自动进行选择匹配方式,首先进行constructor自动装配,若不存在构造方法则使用byType方式进行自动装配;
▷no值:表示不适用自动装配。
▶dependency-check属性:用于指定Bean的依赖检查模式,检查依赖关系是否完整,与自动装配合用,其有四个值:
▷simple值:表示针对基本类型、字符串、集合进行依赖检查
▷object值:表示对引用对象进行依赖检查
▷all值:表示对基本类型、字符串、集合、引用对象全部进行依赖检查
▷none值:表示不进行任何依赖检查,默认情况。
- property标签
▶name属性:用于指定属性的名称,与类中的set方法后方的名称一致
▶value属性:用于指定该属性的值,用于指定的值是基本类型、字符串类型
▶ref属性:用于指定该属性的值,用于指定的值是引用对象类型(即其他的Bean),ref后面的值为另一个Bean的id
▶value标签:用于指定属性的值,类型为基本类型、字符串类型,值为标签内的文本内容,可以使用null值将属性的值设置为null
至此,applicationContext.xml文档的各个标签差不多这样了,更深入的配置,如list,map等,这些后续整合的时候,再顺便写一下
今天的文章javaweb学习(三):applicationContext.xml文档解析,配置<beans><bean><property>等详解「建议收藏」分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/58251.html