SSM整合 旧城等待, 2022-04-15 05:09 249阅读 0赞 使用框架的版本: Spring 5.0.8 RELEASE Spring MVC 5.0.8 RELEASE MyBatis 3.4.6 mysql 创建一个maven web工程 ![20181121222036539.png][] ## ## ### 整合步骤: ### 1、pom.xml中引入依赖: <dependencies> <!-- spring --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.0.8.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>5.0.8.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.0.8.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>5.0.8.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> <version>5.0.8.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> <version>5.0.8.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>5.0.8.RELEASE</version> </dependency> <!-- servlet --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.2</version> <scope>provided</scope> </dependency> <!-- log4j --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.2</version> </dependency> <!-- slf4j --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.25</version> </dependency> <!-- taglibs --> <dependency> <groupId>org.apache.taglibs</groupId> <artifactId>taglibs-standard-spec</artifactId> <version>1.2.5</version> <type>bundle</type> </dependency> <dependency> <groupId>org.apache.taglibs</groupId> <artifactId>taglibs-standard-impl</artifactId> <version>1.2.5</version> <type>bundle</type> </dependency> <!-- mybatis --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.6</version> </dependency> <!-- mybatis-spring --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.3.2</version> </dependency> <!-- mybatis-generator --> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.7</version> </dependency> <!-- pagehelper --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.1.4</version> </dependency> <!-- ehcache --> <dependency> <groupId>org.mybatis.caches</groupId> <artifactId>mybatis-ehcache</artifactId> <version>1.1.0</version> </dependency> <!-- mysql --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.46</version> </dependency> <!-- oracle --> <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc6</artifactId> <version>12.1.0.1-atlassian-hosted</version> </dependency> <!-- c3p0 --> <dependency> <groupId>com.mchange</groupId> <artifactId>c3p0</artifactId> <version>0.9.5.2</version> </dependency> <!-- jackson --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.9.6</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.9.6</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.9.6</version> </dependency> <!-- commons-fileupload --> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.3</version> </dependency> <!-- junit --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <extensions>true</extensions> </plugin> </plugins> </build> </project> 2、在 web.xml 里做初始配置spring和springmvc <!--解决中文乱码的filter一定要放在最前面 --> <filter> <filter-name>CharacterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <!-- 配置encoding,告诉我们指定的编码格式 --> <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> <!-- 1. 指定spring.xml配置文件的位置和名称及ContextLoaderListener --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring.xml</param-value> </context-param> <!-- 开启初始化IOC容器的监听器 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!-- 2. 指定springmvc.xml.xml配置文件的位置和名称及DispatcherServlet --> <servlet> <servlet-name>springDispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc.xml</param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet> <!-- 指定url地址 --> <servlet-mapping> <servlet-name>springDispatcherServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <!-- /: 根目录下的所有url地址, 但是不包括servlet /*: 根目录下的所有url地址, 包括servlet, 一般用在filter配置 --> <!-- hiddenHttpMethodFilter过滤器处理REST:将指定的POST请求转化为put请求或delele请求 --> <filter> <filter-name>hiddenHttpMethodFilter</filter-name> <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class> </filter> <filter-mapping> <filter-name>hiddenHttpMethodFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> 3、SpringMVC.xml 配置 <!-- 简写形式: 默认会帮我们注册默认处理请求,参数和返回值的类--> <mvc:annotation-driven > <mvc:message-converters> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> <constructor-arg value="UTF-8" /> </bean> </mvc:message-converters> </mvc:annotation-driven> <!-- 让springmvc自动识别静态资源文件: js, css, 图片等 --> <mvc:default-servlet-handler/> <!-- 1. 使用注解驱动 配置包扫描(不使用默认的 Filter 进行扫描,包含springmvc要扫的包) --> <context:component-scan base-package="cn.jq.ssm" use-default-filters="false"> <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/> <context:include-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice"/> </context:component-scan> <!-- 2. 配置springmvc视图解析器ViewResolver --> <bean id="" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/view/"></property> <property name="suffix" value=".jsp"></property> </bean> <!-- 配置自定义的数据转换器,并注入到springmvc容器中--> <!-- 配置文件上传的解析器:--> <!-- 配置拦截器: --> <!-- 配置全局异常处理的处理器: --> 4、Spring.xml 配置 mybatis 声明dataSource事务管理器 <!-- 1. 导入源属性文件 --> <context:property-placeholder location="classpath:application.properties" /> <!-- c3p0 连接池 --> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <!-- 类似EL表达式取资源文件的值 --> <property name="driverClass" value="${jdbc.driverClass}"></property> <property name="jdbcUrl" value="${jdbc.url}"></property> <property name="user" value="${jdbc.user}"></property> <property name="password" value="${jdbc.password}"></property> <property name="initialPoolSize" value="${c3p0.initialPoolSize}"></property> <property name="acquireIncrement" value="${c3p0.acquireIncrement}"></property> <property name="maxPoolSize" value="${c3p0.maxPoolSize}"></property> <property name="minPoolSize" value="${c3p0.minPoolSize}"></property> <property name="maxStatements" value="${c3p0.maxStatements}"></property> <property name="maxStatementsPerConnection" value="${c3p0.maxStatementsPerConnection}"></property> </bean> <!-- 2. 整合Mybatis, 配置Mybatis的sqlSessionFactory实例 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!-- 数据源 --> <property name="dataSource" ref="dataSource"></property> <!-- Mybatis全局配置文件 --> <property name="configLocation" value="classpath:mybatisConfig.xml"></property> <!-- sql映射配置文件 --> <property name="mapperLocations" value="classpath:cn/jq/ssm/dao/*.xml"></property> </bean> <!-- 映射接口包扫描,注入ioc容器映射接口的代理实现类 --> <mybatis-spring:scan base-package="cn.jq.ssm.dao"/> <!-- 3. 使用注解驱动 配置包扫描(使用默认的 Filter 进行扫描,不包含springmvc要扫的包) --> <context:component-scan base-package="cn.jq.ssm"> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/> <context:exclude-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice"/> </context:component-scan> <!-- 4. 声明dataSource事务管理器 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"></property> </bean> <!-- 开启事务注释 @Transactional --> <!--<tx:annotation-driven transaction-manager="transactionManager" /> --> <!-- 配置事务通知 --> <tx:advice id="tsAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="get*" read-only="true"/> <tx:method name="find*" read-only="true"/> <tx:method name="select*" read-only="true"/> <tx:method name="*" read-only="false"/> </tx:attributes> </tx:advice> <!-- 配置事务切入点 --> <aop:config> <aop:pointcut expression="execution(* cn.jq.ssm.service.*.*(..))" id="txPointcut"/> <aop:advisor advice-ref="tsAdvice" pointcut-ref="txPointcut"/> </aop:config> <!-- 5. 配置spring的jdbcTemplate --> <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="dataSource"></property> </bean> 5、application.properties jdbc.driverClass=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/ssm?allowMultiQueries=true&useUnicode=true&characterEncoding=utf8&useSSL=true jdbc.user=root jdbc.password=123456 oracle.driverClass=oracle.jdbc.OracleDriver oracle.url=jdbc:oracle:thin:@localhost:1521:orcl oracle.user=scott oracle.password=tiger c3p0.initialPoolSize=5 c3p0.acquireIncrement=5 c3p0.maxPoolSize=20 c3p0.minPoolSize=5 c3p0.maxStatements=200 c3p0.maxStatementsPerConnection=5 6、log4j.properties log4j.rootLogger = debug,stdout, D log4j.appender.stdout = org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target = System.out log4j.appender.stdout.Threshold = INFO log4j.appender.stdout.layout = org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d %p %m%n log4j.appender.D = org.apache.log4j.DailyRollingFileAppender log4j.appender.D.File = ./log4j.log log4j.appender.D.Append = true log4j.appender.D.Threshold = DEBUG log4j.appender.D.layout = org.apache.log4j.PatternLayout log4j.appender.D.layout.ConversionPattern=%d %p %m%n 7、mybatisConfig.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <settings> <!-- 开启自动驼峰命名规则映射,即从经典数据库列名 A_COLUMN 到POJO类属性名 aColumn的类似映射。 --> <setting name="mapUnderscoreToCamelCase" value="true"/> <setting name="jdbcTypeForNull" value="NULL"/> <!-- 开启懒加载 --> <setting name="lazyLoadingEnabled" value="true"/> <setting name="aggressiveLazyLoading" value="false"/> <!-- 开启二级缓存 --> <setting name="cacheEnabled" value="true"/> </settings> <plugins> <plugin interceptor="com.github.pagehelper.PageInterceptor"> <!-- 设置数据库类型 Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库--> <property name="helperDialect" value="mysql"/> </plugin> </plugins> <databaseIdProvider type="DB_VENDOR"> <property name="MySql" value="mysql"/> <property name="Oracle" value="oracle"/> </databaseIdProvider> </configuration> 8、mbgconfig.xml :根据表帮我们自动生成接口、pojo类和xml这些文件,更改为自己项目的包名,表名 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <generatorConfiguration> <!--targetRuntime用MyBatis3, 也就是默认的--> <context id="mysqlTables" targetRuntime="MyBatis3"> <commentGenerator> <!-- 去除自动生成的注释 --> <property name="suppressAllComments" value="true"/> </commentGenerator> <!--基础的数据库连接--> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/ssm?allowMultiQueries=true" userId="root" password="123456"> </jdbcConnection> <!--Java类型解析器, 目前也就只有forceBigDecimals--> <javaTypeResolver> <property name="forceBigDecimals" value="false"/> </javaTypeResolver> <!-- Domain生成器,即java实体类 --> <javaModelGenerator targetPackage="cn.jq.ssm.model" targetProject=".\src\main\java"> <!--据说可以自动添加schema名--> <property name="enableSubPackages" value="true"/> <!--当遇到String的时候setter是否会先trim()--> <property name="trimStrings" value="true"/> </javaModelGenerator> <!--Mapping生成器,即生成的 Mapper.xml 文件位置--> <sqlMapGenerator targetPackage="cn.jq.ssm.dao" targetProject=".\src\main\java"> <property name="enableSubPackages" value="true"/> </sqlMapGenerator> <!--Mapper生成器, 即生成的 Mapper 接口类,当type为ANNOTATEDMAPPER时是带有@annotation的Mapper, MIXEDMAPPER是XML文件--> <javaClientGenerator type="XMLMAPPER" targetPackage="cn.jq.ssm.dao" targetProject=".\src\main\java"> <property name="enableSubPackages" value="true"/> </javaClientGenerator> <!--字段命名策略过程: table标签对应数据库中的table表--> <table tableName="t_user" domainObjectName="User" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> </table> <table tableName="t_role" domainObjectName="Role" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> </table> </context> </generatorConfiguration> @Test public void runmbg() throws Exception { List<String> warnings = new ArrayList<String>(); boolean overwrite = true; String path = this.getClass().getClassLoader().getResource("mbgconfig.xml").getPath(); File configFile = new File(path); ConfigurationParser cp = new ConfigurationParser(warnings); Configuration config = cp.parseConfiguration(configFile); DefaultShellCallback callback = new DefaultShellCallback(overwrite); MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); myBatisGenerator.generate(null); } 9、ehcache.xml, 根据需要可配也不不配 <?xml version="1.0" encoding="UTF-8" ?> <ehcache> <diskStore path="d:/ehcache/"/> <defaultCache maxElementsInMemory="10000" eternal="false" timeToIdleSeconds="120" timeToLiveSeconds="120" overflowToDisk="true" maxElementsOnDisk="10000000" diskPersistent="false" diskExpiryThreadIntervalSeconds="120" memoryStoreEvictionPolicy="LRU" /> </ehcache> ### 整合完成 简单测试: ### 创建service 和 controller, 调用mapper接口的方法 @Service("userService") public class UserServiceImpl implements UserService{ @Autowired private UserMapper userMapper; @Override public List<User> selectAllUser() { return userMapper.selectAllUser(); } } @Controller public class IndexController { @Autowired private UserService userService; // http://127.0.0.1:8080/ssm/index @RequestMapping(value = "/index", method = RequestMethod.GET) public String index(Model model) { List<User> userList = userService.selectAllUser(); model.addAttribute("userList", userList); return "index"; } } index.jsp <body> <h3>欢迎进入首页</h3> ${userList } </html> 访问:http://127.0.0.1:8080/ssm/index ![20181121221920492.png][] 测试ok, ssm整合 end [20181121222036539.png]: /images/20220415/098058fd85fc49859ff2895d3c17cc01.png [20181121221920492.png]: /images/20220415/4b6f51d369684eb6b2c2edb977e32c54.png
相关 ssm整合 整合:spring4.2.5+mybatis3.2.8+springMVC+maven 环境:Myeclipse2014+mysql5.5.20+tomcat8+jdk1. 柔光的暖阳◎/ 2022年07月13日 11:19/ 0 赞/ 68 阅读
相关 ssm整合 0.POM文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apa Bertha 。/ 2022年05月28日 12:54/ 0 赞/ 193 阅读
相关 SSM整合 这篇文章写的比较简单,所以比较适合有一定基础的同学才能看懂(正常使用Mybatis和SpringMVC) 首先,我们整理一下思路,将配置文件归归类; 谁践踏了优雅/ 2022年05月12日 06:06/ 0 赞/ 228 阅读
相关 SSM整合 使用框架的版本: Spring 5.0.8 RELEASE Spring MVC 5.0.8 RELEASE MyBatis 3 旧城等待,/ 2022年04月15日 05:09/ 0 赞/ 250 阅读
相关 ssm整合 在mybatis和spring整合后 , 在把springmvc整合进来 在maven里创建web工程 然后进行mybatis和spring的整合步骤(写在其他博客里) 超、凢脫俗/ 2022年02月12日 10:10/ 0 赞/ 345 阅读
相关 ssm整合 一、注入依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mav 快来打我*/ 2022年01月23日 12:57/ 0 赞/ 369 阅读
相关 SSM--SSM整合 一、项目层级结构以及所需JAR包: ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9 傷城~/ 2022年01月21日 23:37/ 0 赞/ 373 阅读
相关 SSM整合 一、jar包 1. spring(包括springmvc) 2. mybatis 3. mybatis-spring整合包 4. 数据库驱动 5. 第三方连接池 ╰+攻爆jí腚メ/ 2021年12月09日 16:59/ 0 赞/ 351 阅读
相关 ssm整合 ssm整合 项目目录 ![1560559-20190805161522126-1893405258.png][] jar ![1560559-2019080 桃扇骨/ 2021年10月24日 02:56/ 0 赞/ 399 阅读
相关 SSM整合 SSM:Spring+SpringMVC+MyBatis 1、导包 1)、Spring 【aop核心】 com.springsource.net.sf. 男娘i/ 2021年09月23日 16:18/ 0 赞/ 426 阅读
还没有评论,来说两句吧...