1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > Spring框架学习(十)SSM框架整合

Spring框架学习(十)SSM框架整合

时间:2021-06-26 21:43:29

相关推荐

Spring框架学习(十)SSM框架整合

目录

构建项目(IDEA版本)环境搭建Spring框架搭建SpringMVC框架搭建Spring整合SpringMVCMybatis框架搭建Spring整合MybatisSpring事务管理

构建项目(IDEA版本)

点击 create new Project

选择Maven工程,并点击Create from archetype,选择webapp工程

解决创建项目过慢的问题(加入新的键值对archetypeCatalog,internal)

最后一步finish,创建完成

环境搭建

创建JAVA文件夹和resources文件夹,并且将两个文件夹变成前者source root,后者Resources root

注入依赖

<properties><spring.version>5.1.6.RELEASE</spring.version><slf4j.version>1.7.5</slf4j.version><log4j.version>1.2.12</log4j.version><mysql.version>5.1.6</mysql.version><mybatis.version>3.4.5</mybatis.version></properties><dependencies><!-- spring --><dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.9.2</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>${spring.version}</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>compile</scope></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>${mysql.version}</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.5</version><scope>provided</scope></dependency><dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>2.0</version><scope>provided</scope></dependency><dependency><groupId>jstl</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><!-- log start --><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>${log4j.version}</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>${slf4j.version}</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>${slf4j.version}</version></dependency><!-- log end --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>${mybatis.version}</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>1.3.2</version></dependency><dependency><groupId>c3p0</groupId><artifactId>c3p0</artifactId><version>0.9.1.2</version><type>jar</type><scope>compile</scope></dependency></dependencies>

创建domain层实体类

public class Account implements Serializable {private Integer id;private String name;private Double money;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Double getMoney() {return money;}public void setMoney(Double money) {this.money = money;}@Overridepublic String toString() {return "Account{" +"id=" + id +", name='" + name + '\'' +", money=" + money +'}';}}

创建dao层持久层接口

public interface AccountDao {public void saveAccount(Account account);public List<Account> findAll();}

创建service层业务层接口

public interface AccountService {public void saveAccount(Account account);public List<Account> findAll();}

Spring框架搭建

配置applicationContext.xml文件,并且配置注解

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:context="/schema/context"xmlns:aop="/schema/aop"xmlns:tx="/schema/tx"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans.xsd/schema/context/schema/context/spring-context.xsd/schema/aop/schema/aop/spring-aop.xsd/schema/tx/schema/tx/spring-tx.xsd"><!-- 开启注解扫描,要扫描的是service和dao层的注解,要忽略web层注解,因为web层让SpringMVC框架去管理 --><context:component-scan base-package="com.lwb"><!-- 配置要忽略的注解 --><context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/></context:component-scan></beans>

实现service接口,并写上接口

@Service("accountService")public class AccountServiceImpl implements AccountService {public void saveAccount(Account account) {System.out.println("保存操作");}public List<Account> findAll() {System.out.println("查询操作");return null;}}

SpringMVC框架搭建

配置前端控制器和中文乱码问题

<!-- 配置前端控制器:服务器启动必须加载,需要加载springmvc.xml配置文件 --><servlet><servlet-name>dispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- 配置初始化参数,创建完DispatcherServlet对象,加载springmvc.xml配置文件 --><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springMVC.xml</param-value></init-param><!-- 服务器启动的时候,让DispatcherServlet对象创建 --><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>dispatcherServlet</servlet-name><url-pattern>/</url-pattern></servlet-mapping><!-- 配置解决中文乱码的过滤器 --><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></filter><filter-mapping><filter-name>characterEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>

配置springMVC.xml

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:mvc="/schema/mvc"xmlns:context="/schema/context"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans.xsd/schema/mvc/schema/mvc/spring-mvc.xsd/schema/context/schema/context/spring-context.xsd"><!-- 扫描controller的注解,别的不扫描 --><context:component-scan base-package="com.lwb"><context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"></context:include-filter></context:component-scan><!-- 配置视图解析器 --><bean id="ViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"><!-- JSP文件所在的目录 --><property name="prefix" value="/WEB-INF/pages/" /><!-- 文件的后缀名 --><property name="suffix" value=".jsp" /></bean><!-- 设置静态资源不过滤 --><mvc:resources location="/css/" mapping="/css/**" /><mvc:resources location="/images/" mapping="/images/**" /><mvc:resources location="/js/" mapping="/js/**" /><!-- 开启对SpringMVC注解的支持 --><mvc:annotation-driven /></beans>

创建Controller类,并配上注解

@Controller@RequestMapping("/AccountController")public class AccountController {@RequestMapping("/findAll")public String findAll(){System.out.println("配置成功");return "list";}}

Spring整合SpringMVC

目的:在controller中能成功的调用service对象中的方法。在项目启动的时候,就去加载applicationContext.xml的配置文件,在web.xml中配置ContextLoaderListener监听器(该监听器只能加载WEB-INF目录下的applicationContext.xml的配置文件)。

<!-- 配置Spring的监听器 --><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!-- 配置Spring的监听器 --><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml</param-value></context-param>

在controller中注入service对象

@Autowiredprivate AccountService accountService;

Mybatis框架搭建

配置SqlMapperConfig.xml文件

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configurationPUBLIC "-////DTD Config 3.0//EN""/dtd/mybatis-3-config.dtd"><configuration><!--搭建环境--><environments default="mysql"><environment id="mysql"><transactionManager type="JDBC"></transactionManager><dataSource type="POOLED"><property name="driver" value="com.mysql.jdbc.Driver"/><property name="url" value="jdbc:mysql:///spring3"/><property name="username" value="root"/><property name="password" value="123456"/></dataSource></environment></environments><!--配置mapper--><mappers><!--<mapper class="com.lwb.dao.AccountDao"></mapper>--><package name="com.lwb.dao"></package></mappers></configuration>

在Dao接口上配置注解

@Insert("insert into account(name,money) values(#{name},#{money})")public void saveAccount(Account account);@Select("select * from account")public List<Account> findAll();

Spring整合Mybatis

把SqlMapConfig.xml配置文件中的内容配置到applicationContext.xml配置文件中

<!--数据源--><bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"><property name="driverClassName" value="com.mysql.jdbc.Driver" /><property name="url" value="jdbc:mysql:///spring" /><property name="username" value="root" /><property name="password" value="123456" /></bean><!--SqlSessionFactory工厂--><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource"/></bean><!--配置扫描的包--><bean id="mapperScanner" class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.lwb.dao"/></bean>

在AccountDao接口中添加@Repository注解

@Repositorypublic interface AccountDao {

在service中注入dao对象

@Autowiredprivate AccountDao accountDao;public List<Account> findAll() {System.out.println("查询操作");return accountDao.findAll();}

Spring事务管理

<!--配置事务管理--><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource"/></bean><!--配置事务通知--><tx:advice id="txadvice" transaction-manager="transactionManager"><tx:attributes><tx:method name="*" propagation="REQUIRED" read-only="false"/><tx:method name="find*" propagation="SUPPORTS" read-only="true"/></tx:attributes></tx:advice><!--配置切入点--><aop:config><aop:pointcut id="pt1" expression="execution(* com.lwb.service.*Impl.*(..))"/><aop:advisor pointcut-ref="pt1" advice-ref="txadvice"/></aop:config>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。