Maven搭建SSM项目
来源:互联网 发布:cab软件下载 编辑:程序博客网 时间:2024/06/04 18:53
1.基本环境部署
首先你需要的是把电脑的基本环境配置好,如果你用的windows系统:1:jre环境2:编译器:IntelliJ IDEA173:一个服务器,没有也行,在本机测试4:Maven配置好
2.配置Maven
2.1下载maven
官方地址:http://maven.apache.org/download.cgi
解压并新建一个本地仓库文件夹
2.2配置本地仓库路径
2.3.配置maven环境变量
3.打开idea建立一个maven项目
选择Maven项目,勾选create from archetype,然后下一步输入GroupId和ArtifactId。
GroupID是项目组织唯一的标识符,实际对应JAVA的包的结构,是main目录里java的目录结构。
ArtifactID就是项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称。
一般GroupID就是填com.leafive.test这样子。我也忘记这个GroupId后面哪里能用到了,但ArtifactID是项目打包后的名字,最好和项目同名。
添加的配置为 archetypeCatalog=internal 可以自动建立对应目录!
点击NEXT
点击NEXT
点击Finish后项目开始创建
点击右下角查看进去
6.maven web模板项目结构
同样在main下新建test测试文件夹,再在此文件夹下新建java测试源码文件夹和resource测试资源文件夹
也可以右键项目-选择Open Module Settings打开项目配置页面更改
7.配置依赖jar包 ,写在pom.xml文件下
4.开始进行后台的xml文件配置
基本目录配置截图
1.mapper文件夹主要写mapper配置文件,访问数据库用的,一般一个类写一个mapper,里面有这个类的各种实现方法。
2.properties主要主要是各种配置文件,方便以后修改用。
3.spring这里把三个spring进行分类了
- applicationContext-dao.xml
- 加载配置jdbc.property
2.数据库连接池
3.mapper配置,让spring管理sqlsessionfactory 使用mybatis和spring整合包中的
4.配置mapper扫描
- 加载配置jdbc.property
<?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-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"> <!-- 加载配置jdbc.property --> <context:property-placeholder location="classpath:properties/jdbc.properties"/> <!-- 数据库连接池 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${jdbc.driver}"/> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> <property name="maxActive" value="30" /> <property name="maxIdle" value="5" /> </bean> <!-- mapper配置 --> <!-- 让spring管理sqlsessionfactory 使用mybatis和spring整合包中的 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!-- 加载mybatis的配置文件 --> <!-- <property name="configLocation" value="classpath:mybatis/SqlMapConfig.xml"></property>--> <!-- 加载数据源 --> <property name="dataSource" ref="dataSource"></property> <!-- 扫描mapper.xml --> <property name="mapperLocations" value="classpath*:/mapper/*.xml"/> </bean> <!-- 配置mapper扫描 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/> <property name="basePackage" value="akk.ssm.mapper"/> </bean></beans>
- applicationContext-service.xml
1.使用Spring组件扫描的方式来实现自动注入bean
<?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-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"> <!-- 使用Spring组件扫描的方式来实现自动注入bean --> <context:component-scan base-package="akk.ssm.service.impl"/></beans>
- applicationContext-transaction.xml
1.事务管理器对mybatis操作数据库事务控制,spring使用jdbc事务控制器
二. 配置aop 切面编程
<?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" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"> <!-- 事务管理器 对mybatis操作数据库事务控制,spring使用jdbc事务控制器 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <!-- 数据源 在application-dao.xml里配置了 --> <property name="dataSource" ref="dataSource"></property> </bean> <!-- 通知 --> <tx:advice id="txAdvice"> <tx:attributes> <!-- 传播行为 把一些特定行为进行统一 --> <tx:method name="save*" propagation="REQUIRED"/> <tx:method name="insert*" propagation="REQUIRED"/> <tx:method name="delete*" propagation="REQUIRED"/> <tx:method name="update*" propagation="REQUIRED"/> <tx:method name="find*" propagation="SUPPORTS" read-only="true"/> <tx:method name="get*" propagation="SUPPORTS" read-only="true"/> </tx:attributes> </tx:advice> <!-- 配置aop 切面编程--> <aop:config> <aop:advisor advice-ref="txAdvice" pointcut="execution(* akk.ssm.service.impl.*.*(..))"/> </aop:config></beans>
4.springmvc
- 使用 mvc:annotation-driven代替上边注解映射器和注解适配器配置
mvc:annotation-driven默认加载很多的参数绑定方法, - 自动扫描 @Controller
- 加载静态资源
- 避免IE执行AJAX时,返回JSON出现下载文件
- 定义跳转的文件的前后缀 ,视图模式配置
- 解决@ResponseBody注解直接返回对象并转换成JSON时出现406问题
同时解决了返回String类型乱码的问题 - 拦截器
- 文件上传配置
<?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:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd"> <!-- 使用 mvc:annotation-driven代替上边注解映射器和注解适配器配置 mvc:annotation-driven默认加载很多的参数绑定方法, --> <mvc:annotation-driven ></mvc:annotation-driven> <!-- 自动扫描 @Controller--> <context:component-scan base-package="akk.ssm.controller"/> <mvc:default-servlet-handler/> <!--加载静态资源--> <!--这里加载得话拦截器会拦截js,所以在web.xml里面配置--> <!--<mvc:resources location="/js/" mapping="/js/**"/>--> <!--避免IE执行AJAX时,返回JSON出现下载文件 --> <bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value> </list> </property> </bean> <!-- 定义跳转的文件的前后缀 ,视图模式配置 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/" /> <property name="suffix" value=".html"/> </bean> <!-- 解决@ResponseBody注解直接返回对象并转换成JSON时出现406问题 同时解决了返回String类型乱码的问题 --> <mvc:annotation-driven> <mvc:message-converters> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/plain;charset=UTF-8</value> <value>text/html;charset=UTF-8</value> </list> </property> </bean> <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>application/json; charset=UTF-8</value> <value>application/x-www-form-urlencoded; charset=UTF-8</value> </list> </property> </bean> </mvc:message-converters> </mvc:annotation-driven> <!--<!–拦截器–> <mvc:interceptors> <!–可以方多个拦截器,顺序执行–> <mvc:interceptor> <mvc:mapping path="/**"/> <bean class="akk.ssm.Interceptor.LoginInterceptor"></bean> </mvc:interceptor> </mvc:interceptors>--> <!-- 文件上传配置 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- 默认编码 --> <property name="defaultEncoding" value="UTF-8"/> <!-- 上传文件大小限制为31M,31*1024*1024 --> <property name="maxUploadSize" value="32505856"/> <!-- 内存中的最大值 --> <property name="maxInMemorySize" value="4096"/> </bean></beans>
5.这些xml文件配置完成后,就可以来进行具体的功能代码编写了,一般是controller和service和mapper同时编写的,我一般是先写controller然后遇到具体要写其他地方的时候再跳到其他地方写其他的,最后把controller完成,一个功能也就完成了!
5、登录功能的实现代码
controller类
@Controller@RequestMapping("/login")public class LoginController { @Autowired//可以对成员变量、方法和构造函数进行标注,来完成自动装配的工作 private UserService userService; //查询用户名 @RequestMapping("/username") public @ResponseBody//把返回类型转换为Json对象 GeResult login(HttpServletRequest request, @RequestBody User user) throws Exception{ //System.out.println(user.getUsername()+"akk"); try { HttpSession session = request.getSession(); User u = userService.findUserByusername(user.getUsername());//传到Mapper进行查找 //返回ajax响应 if (u==null){ return new GeResult<User>(-1, "用户名错误");//返回类型为一个对象,里面包含错误提示信息,利用了封装的特性,使代码更加简洁 }else{ if(u.getPassword().equals(user.getPassword())){ session.setAttribute("user", u); //将用户存到session return new GeResult<User>(0, u); //登陆成功的返回 } else{ return new GeResult<User>(-2, "密码错误"); } } } catch (Exception e) { e.printStackTrace(); return new GeResult<User>(-3, "系统异常"); } } //登出 @RequestMapping("/logout") public String logout(HttpSession session) throws Exception{ //清除session session.invalidate(); //返回到登录页面,springmvc有视图模式配置 return "login"; }
service类
//接口public interface UserService { public User findUserByusername(String username) ;}
//impl实现@Service("userService")public class UserServiceimpl implements UserService{ @Autowired private UserMapper userMapper; public User findUserByusername(String username) { return userMapper.findUserByusername(username); }}
mapper类
public interface NumMapper { public void InsertNum(Num num); public List<Num> FindNum();}
UserMapper.xml
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="akk.ssm.mapper.UserMapper"> <select id="findUserByusername" parameterType="String" resultType="akk.ssm.pojo.User"> SELECT * FROM user WHERE username=#{ VALUE } </select></mapper>
返回类GeResult具体代码,运用到封装特性!
*///这是一个返回信息的容器/** 这才是泛型的正确写法,在前端指定数据类型,在后台用T不确定类型接收*/public class GeResult<T> { private int status; //返回状态信息,0是成功,-1是失败 private String message; //返回的提示信息 private T u; public GeResult(int status, String message){ this.status = status; this.message = message; } public GeResult(int status, T u){ this.status = status; this.u = u; } public int getStatus() { return status; } public void setStatus(int status) { this.status = status; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public T getU() { return u; } public void setU(T u) { this.u = u; }}
这就是一个简单的登录的流程代码,数据库自己写就行了。
我会把源程序发布的,大家可以下载调试,应该比网上那些其他人的不完整或者有问题的代码好一点吧,至少我这里是成功的,因为我也是接触SSM尚浅,有写的不好的多多包涵,但给新手看足够了,特别是第一次看的新手,应该有了我这一套你不需要看别的博客了,跑起来足够了。
这个源代码不止是简单的登录页面,我是给别人写的一个小功能页面,还包括一个增添功能和查看功能,都是很简单的功能,初学者可以学习下。 主要是前端的跳转和AJAX传递不好写,因为属于前端的内容,反正这一套项目主要是把前端和后台分开,前端和后台的连接就只靠ajax的url,完全分离,因为听已经工作了的学长说,以后在公司项目,前端和后台都是分开的,而且代码要规范,一定要规范!可能我这一套还不够规范,hh但商业级别的我现在还在探索,以后会写了再分享!也希望那些大神多分享一些商业级别的代码规范,这样是利大于弊的,不要吝啬,给后人多一些台阶,会更好促进整个编程环境的发展=。=
下载地址:http://download.csdn.net/detail/qq_31783173/9828605
- maven搭建SSM项目
- maven项目搭建ssm
- Maven搭建SSM项目
- maven搭建ssm项目
- maven搭建ssm项目
- eclipse maven 搭建【SSM】项目
- 利用Maven搭建SSM项目
- maven搭建ssm项目(入门)
- SSM(Spring+SpringMVC+Mybatis)+Maven项目搭建
- IDEA使用Maven搭建SSM项目
- idea+maven+ssm搭建基本项目
- 使用idea 搭建ssm+maven+logback项目
- 搭建maven ssm项目的问题
- SSM框架搭建(Maven项目)
- idea maven项目来搭建ssm整合
- maven+ssm+oracle简单项目搭建
- Eclipse+Maven创建webapp项目(用于SSM项目搭建)
- SSM+Maven环境搭建
- 二叉树的建立与遍历
- java集合系列09 Queue
- hdoj-Oil Deposits
- mui开发APP教程之使用选项卡跳转子页面
- TREAP 模板(新)
- Maven搭建SSM项目
- Keras中几个重要函数用法
- 转自一个安卓技术总监的思考问题高度
- php,微信公众号群发系统,微信公众号管理系统,微信公众号素材粉丝管理系统,微信公众号智能定时任务群发
- android 判断网络是否可用
- 使用mp4v2将aac音频h264视频数据封装成mp4开发心得
- Four avaiable ways to install Tor in kali
- nodejs通过lodash合并去重由unixtime和Date组成的两个数组
- 简单批处理管理你的VM虚拟机服务,设置开机不启动虚拟机服务