基于XML版本的SSM整合

1.1 步骤一:导入需要的依赖

		mybatis,mysql,log4j,ehcache,pageHelper
		spring-core,spring-beans,spring-context,spring-jdbc,spring-aop,c3p0/dbcp/durid
		spring-web,spring-webmvc,javaee-api,jackson,commons-io,commons-fileupload,jstl
		
		<!-- https://mvnrepository.com/artifact/org.springframework/spring-beans -->
		<dependency>
		  <groupId>org.springframework</groupId>
		  <artifactId>spring-beans</artifactId>
		  <version>5.1.5.RELEASE</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
		<dependency>
		  <groupId>org.springframework</groupId>
		  <artifactId>spring-context</artifactId>
		  <version>5.1.5.RELEASE</version>
		</dependency>
		<dependency>
		  <groupId>log4j</groupId>
		  <artifactId>log4j</artifactId>
		  <version>1.2.16</version>
		</dependency>
		<dependency>
		  <groupId>commons-logging</groupId>
		  <artifactId>commons-logging</artifactId>
		  <version>1.2</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/org.aspectj/aspectjweaver -->
		<dependency>
		  <groupId>org.aspectj</groupId>
		  <artifactId>aspectjweaver</artifactId>
		  <version>1.9.2</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
		<dependency>
		  <groupId>org.springframework</groupId>
		  <artifactId>spring-jdbc</artifactId>
		  <version>5.1.5.RELEASE</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
		<dependency>
		  <groupId>mysql</groupId>
		  <artifactId>mysql-connector-java</artifactId>
		  <version>5.1.38</version>
		</dependency>
		<dependency>
		  <groupId>org.mybatis</groupId>
		  <artifactId>mybatis</artifactId>
		  <version>3.4.6</version>
		</dependency>
		<dependency>
		  <groupId>org.mybatis.generator</groupId>
		  <artifactId>mybatis-generator-core</artifactId>
		  <version>1.3.2</version>
		</dependency>
		<!--引入需要的ehcache插件-->
		<dependency>
		  <groupId>net.sf.ehcache</groupId>
		  <artifactId>ehcache</artifactId>
		  <version>1.2.3</version>
		</dependency>
		<!--mybatis整合ehcache的jar-->
		<dependency>
		  <groupId>org.mybatis</groupId>
		  <artifactId>mybatis-ehcache</artifactId>
		  <version>1.0.0</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
		<dependency>
		  <groupId>org.mybatis</groupId>
		  <artifactId>mybatis-spring</artifactId>
		  <version>1.3.2</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
		<dependency>
		  <groupId>com.alibaba</groupId>
		  <artifactId>druid</artifactId>
		  <version>1.1.10</version>
		</dependency>
		<dependency>
		  <groupId>org.slf4j</groupId>
		  <artifactId>slf4j-api</artifactId>
		  <version>1.7.25</version>
		</dependency>

		<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
		<dependency>
		  <groupId>javax.servlet</groupId>
		  <artifactId>javax.servlet-api</artifactId>
		  <version>3.1.0</version>
		  <scope>provided</scope>
		</dependency>

		<dependency>
		  <groupId>org.slf4j</groupId>
		  <artifactId>slf4j-log4j12</artifactId>
		  <version>1.7.25</version>
		  <scope>test</scope>
		</dependency>
		<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
		<dependency>
		  <groupId>com.alibaba</groupId>
		  <artifactId>fastjson</artifactId>
		  <version>1.2.47</version>
		</dependency>

		<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
		<dependency>
		  <groupId>org.springframework</groupId>
		  <artifactId>spring-webmvc</artifactId>
		  <version>5.1.5.RELEASE</version>
		</dependency>
		<dependency>
		  <groupId>org.springframework</groupId>
		  <artifactId>spring-web</artifactId>
		  <version>5.1.5.RELEASE</version>
		</dependency>
		<dependency>
		  <groupId>javaee</groupId>
		  <artifactId>javaee-api</artifactId>
		  <version>5</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
		<dependency>
		  <groupId>com.fasterxml.jackson.core</groupId>
		  <artifactId>jackson-core</artifactId>
		  <version>2.9.8</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
		<dependency>
		  <groupId>com.fasterxml.jackson.core</groupId>
		  <artifactId>jackson-databind</artifactId>
		  <version>2.9.8</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
		<dependency>
		  <groupId>commons-io</groupId>
		  <artifactId>commons-io</artifactId>
		  <version>2.4</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload -->
		<dependency>
		  <groupId>commons-fileupload</groupId>
		  <artifactId>commons-fileupload</artifactId>
		  <version>1.3.1</version>
		</dependency>
		<dependency>
		  <groupId>jstl</groupId>
		  <artifactId>jstl</artifactId>
		  <version>1.2</version>
		</dependency>

1.2 创建配置文件

		mybatis-config.xml
		applicationContext.xml
		datasource.properties
		log4j.properties
		-----------------------------------
		ehcache.xml
		generator.xml

1.3 搭建实体层

		User,Role,Bill,Provider,Address

1.4 新建Mapper层接口,新建业务方法

		public interface Smbms_UserMapper {
			//登陆
			public Smbms_User userLogin(String username,String password);
		}

1.5 创建Mapper接口的配置文件

		<!--登陆SQL-->
		<select id="userLogin" resultType="com.wdksoft.entity.Smbms_User">
			select * from smbms_user where userCode=#{userCode} and userPassword=#{userPassword}
		</select>

1.6 配置Mybatis大配置文件

		1.6.1 开启别名
		1.6.2 开启日志
		1.6.3 加载小配置文件
		1.6.4 如果需要用到分页pageHelper插件,则在Myabtis配置文件中开启插件
		
		<!--根节点-->
		<configuration>
			<!--开启日志-->
			<settings>
				<setting name="logImpl" value="LOG4J"/>
			</settings>

			<!--别名配置-->
			<typeAliases>
				<package name="com.wdksoft.entity"/>
			</typeAliases>

			<!--开启插件-->
			<plugins>
				<plugin interceptor="com.github.pagehelper.PageHelper"></plugin>
			</plugins>
			
			<!--关联小配置文件-->
			<mappers>
				<package name="com.wdksoft.mapper"/>
			</mappers>
		</configuration>

1.7 在Spring大配置文件中配置Mybaits环境

		<!--加载数据源配置文件-->
		<context:property-placeholder location="classpath:datasource.properties"/>
		<!--配置数据源-->
		<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
			<property name="driverClassName" value="${jdbc.driver}"/>
			<property name="url" value="${jdbc.url}"/>
			<property name="username" value="${jdbc.username}"/>
			<property name="password" value="${jdbc.password}"/>
		</bean>
		<!--SqlSessionFactory工厂-->
		<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
			<property name="dataSource" ref="dataSource"/>
			<property name="configLocation" value="classpath:mybatis-config.xml"/>
		</bean>
		<!--开启Mapper层扫描-->
		<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
			<property name="basePackage" value="com.wdksoft.mapper"/>
		</bean>

1.8 新建Service层接口

		public interface Smbms_UserService {
			//登陆
			public Smbms_User userLogin(String userCode,String userPassword);
		}

1.9 新建Service层接口的实现类,调用Mapper层对象

		public class Smbms_UserServiceImpl implements Smbms_UserService {
			//植入Mapper层对象
			private Smbms_UserMapper smbms_userMapper;


			@Override
			public Smbms_User userLogin(String userCode, String userPassword) {
				return smbms_userMapper.userLogin(userCode,userPassword);
			}

			public Smbms_UserMapper getSmbms_userMapper() {
				return smbms_userMapper;
			}

			public void setSmbms_userMapper(Smbms_UserMapper smbms_userMapper) {
				this.smbms_userMapper = smbms_userMapper;
			}
		}

2.0 配置Spring大配置文件,将Mapper层和Service层注入到容器当中

		<!--Mapper层代理工厂生成Mapper对象-->
		<bean id="smbms_UserMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
			<!--生成该接口的代理对象-->
			<property name="mapperInterface" value="com.wdksoft.mapper.Smbms_UserMapper"/>
			<property name="sqlSessionFactory" ref="sqlSessionFactory"/>
		</bean>
		<!--注入Service层-->
		<bean id="smbms_UserService" class="com.wdksoft.service.impl.Smbms_UserServiceImpl">
			<property name="smbms_userMapper" ref="smbms_UserMapper"/>
		</bean>

2.1 测试,使用spring-test

		<dependency>
		  <groupId>org.springframework</groupId>
		  <artifactId>spring-test</artifactId>
		  <version>5.1.5.RELEASE</version>
		</dependency>
		要求junit版本必须不能低于4.12版本
		
		@RunWith(SpringJUnit4ClassRunner.class)
		@ContextConfiguration(locations="classpath:applicationContext.xml")
		public class SpringTest {
			@Resource
			private Smbms_UserService smbms_userService;

			@Test
			public void loginTest(){
				Smbms_User smbms_user = smbms_userService.userLogin("admin", "admin");
				System.out.println(smbms_user);
			}
		}

2.2 新建一个Controller控制器

		public class SmbmsUserController implements Controller {
			//植入Service层对象
			private Smbms_UserService smbms_userService;

			@Override
			public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
				ModelAndView modelAndView=new ModelAndView();
				String userCode = request.getParameter("userCode");
				String userPassword = request.getParameter("userPassword");
				Smbms_User smbms_user = smbms_userService.userLogin(userCode, userPassword);
				if(smbms_user!=null){
					request.getSession().setAttribute("user",smbms_user);
					modelAndView.setViewName("success");
				}else{
					modelAndView.setViewName("login");
				}
				return modelAndView;
			}

			public Smbms_UserService getSmbms_userService() {
				return smbms_userService;
			}

			public void setSmbms_userService(Smbms_UserService smbms_userService) {
				this.smbms_userService = smbms_userService;
			}
		}

2.3 将控制器注入到容器当中,配置视图解析器,释放静态资源

		<!--注入Controller-->
		<bean id="/user" class="com.wdksoft.controller.SmbmsUserController">
			<property name="smbms_userService" ref="smbms_UserService"/>
		</bean>
		<!--视图解析器-->
		<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
			<property name="prefix" value="/"/>
			<property name="suffix" value=".jsp"/>
		</bean>
		<!--释放静态资源-->
		<mvc:default-servlet-handler/>

2.4 配置web.xml

	  <!--编码过滤器-->
	  <filter>
		<filter-name>characterEncodingFilter</filter-name>
		<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
		<init-param>
		  <param-name>encoding</param-name>
		  <param-value>UTF-8</param-value>
		</init-param>
		<init-param>
		  <param-name>forceEncoding</param-name>
		  <param-value>true</param-value>
		</init-param>
	  </filter>
	  <filter-mapping>
		<filter-name>characterEncodingFilter</filter-name>
		<url-pattern>/*</url-pattern>
	  </filter-mapping>
	  <!--中央调度器-->
	  <servlet>
		<servlet-name>springmvc</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<!--初始化-->
		<init-param>
		  <param-name>contextConfigLocation</param-name>
		  <param-value>classpath:applicationContext.xml</param-value>
		</init-param>
		<!--初始化时机-->
		<load-on-startup>1</load-on-startup>
	  </servlet>
	  <servlet-mapping>
		<servlet-name>springmvc</servlet-name>
		<url-pattern>/</url-pattern>
	  </servlet-mapping>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值