ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Spring 快速入门

2021-09-21 19:05:14  阅读:123  来源: 互联网

标签:xml www http 入门 Spring springframework org 快速 schema


1-引入相关的jar包

2-创建要使用的接口及其实现类

3-编写xml文件,将要被引用接口对象的  全包名配置到xml文件中

4-使用Spring客户端.getBean()(反射)的方法来从Spring容器中获得相应的对象

spring的API获得我门想要的对象

最简单的完成了解耦合的过程,这也提现IOC控制反转

并且xml配置文件在开发中和Runtime中是一样的,这样就可以随时修改配置文件

 

总结:

在业务层想要调用持久层的方法,就得要在本地类中new 一个   相关持久层的接口的Impl 类的对象,这样的话就写死了,不方便解耦合,所以使用Spring容器进行IOC控制反转,由Spring容器通过反射来自动创建对象(当用户发出要调用某接口的对象的时候)  具体是操作:

必须将某个接口的Impl的全包名给配置到Spring的xml文件中,将其放在bean  标签中,calss="全包名"     然后在要使用的Controller层中调用ApplicationContext app = new ClassPathXmlApplicationContext("*.xml")来获取被注入的Impl,然后使用发射获得对象,app.getBean(“bean标识符”)  ,记得强转,然后就可以使用相应的方法了

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:tx="http://www.springframework.org/schema/tx"
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/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">
<!--扫描service包-->
<context:component-scan base-package="ssm.shiro.service.impl"></context:component-scan>
<!--创建dbcp数据源连接池-->
<context:property-placeholder location="classpath:jdbc.properties"></context:property-placeholder>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${driver}"></property>
<property name="url" value="${url}"></property>
<property name="username" value="${user}"></property>
<property name="password" value="${password}"></property>
</bean>
<!--创建mybatis的SqlSessionFactory工厂类对象-->
<bean class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<!---->
<!--<property name="configLocation" value="classpath:mybatis.xml"></property>-->
<!--指定mapper文件的地址 此处可以使用*号同配置,表示加载包下所有的xml结尾的mapper文件-->
<property name="mapperLocations" value="classpath:/mapper/*.xml"></property>
</bean>
<!--配置扫描mybatis的dao接口 ,会为dao接口创建myabtis的dao接口实现类对象,放置到session工厂中-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="ssm.shiro.dao"></property>
</bean>
<!--声明spring 的事物管理器对象-->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean>
<!--声明以注解的方式配置spring 的事物-->
<tx:annotation-driven transaction-manager="transactionManager"></tx:annotation-driven>
<!--引入spring 和shiro集成的主配置文件-->
<import resource="classpath:spring-shiro.xml"></import>
</beans>

pom配置文件如下

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>Spring快速入门</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.2.10.RELEASE</version>
        </dependency>
    </dependencies>

    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
        </resources>
    </build>
</project>

此教程意在让小白明白什么是IOC控制反转

标签:xml,www,http,入门,Spring,springframework,org,快速,schema
来源: https://blog.csdn.net/qq_29837345/article/details/120395564

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有