SSM环境搭建过程

mybatis,spring,SpringMVC三大框架整合(idea工具)

1、引入依赖

<dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>5.1.4.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>5.1.4.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.1.4.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-expression</artifactId><version>5.1.4.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jcl</artifactId><version>5.1.4.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId><version>5.1.4.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aspects</artifactId><version>5.1.4.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.1.4.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>5.1.4.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>5.1.4.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.1.4.RELEASE</version></dependency><dependency><groupId>aopalliance</groupId><artifactId>aopalliance</artifactId><version>1.0</version></dependency><dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.9.2</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.4.6</version></dependency><dependency><groupId>asm</groupId><artifactId>asm</artifactId><version>3.3.1</version></dependency><dependency><groupId>cglib</groupId><artifactId>cglib</artifactId><version>2.2.2</version></dependency><dependency><groupId>org.javassist</groupId><artifactId>javassist</artifactId><version>3.17.1-GA</version></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.7</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.5</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>1.7.5</version><scope>test</scope></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>1.3.2</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.6</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.12</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>1.1.1</version></dependency><dependency><groupId>taglibs</groupId><artifactId>standard</artifactId><version>1.1.1</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.9.8</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId><version>2.9.8</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-annotations</artifactId><version>2.9.8</version></dependency><!--文件上传依赖--><dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.3.3</version></dependency></dependencies>
<!--绑定资源目录--></pluginManagement><resources><resource><directory>src/main/java</directory><includes><include>**/*.xml</include><include>**/*.properties</include></includes></resource><resource><directory>src/main/resources</directory><includes><include>**/*.xml</include><include>**/*.properties</include></includes></resource></resources></build>
</project>

数据库建立

数据库:
SET FOREIGN_KEY_CHECKS=0;

 -- ------------------------------ Table structure for employee-- ----------------------------DROP TABLE IF EXISTS `employee`;CREATE TABLE `employee` (`empid` int(11) NOT NULL AUTO_INCREMENT,`empName` varchar(50) DEFAULT NULL,`partment` varchar(50) DEFAULT NULL,`picture` varchar(50) DEFAULT NULL,`state` varchar(50) DEFAULT NULL,PRIMARY KEY (`empid`)) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8;-- ------------------------------ Records of employee-- ----------------------------INSERT INTO `employee` VALUES ('1', '张三', '1', 'logo.jpg', '离职');INSERT INTO `employee` VALUES ('2', '李四', '2', 'bieshu.png', '离职');INSERT INTO `employee` VALUES ('6', '王五', '2', 'zs.png', '在职');INSERT INTO `employee` VALUES ('10', 'cc', '1', 'cc.jpg', '在职');INSERT INTO `employee` VALUES ('11', '', '1', '308f94e3-8aa7-4c44-889a-e206e7f48550_c#.txt', '在职');

2、 配置文件目录

3、建立配置文件

3.1 建立jdbc.properties
jdbc.dr=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql:///test?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=utf8
jdbc.username=root(自己数据库账户)
jdbc.password=自己数据库密码
3.2 新建mybatis.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><!--为实体类指定别名 自己指定自己包名--><typeAliases><package name="com.xxx.entity"/></typeAliases><!--注册映射文件 自己指定自己的dao层映射文件--><mappers><package name="com.xxx.**.dao"/></mappers>
</configuration>
3.3 新建spring-ds.xml
    <!--注入db.properties--><context:property-placeholder location="classpath:jdbc.properties"></context:property-placeholder><bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"><property name="driverClassName" value="${jdbc.dr}"></property><property name="url" value="${jdbc.url}"></property><property name="username" value="${jdbc.username}"></property><property name="password" value="${jdbc.password}"></property></bean>
3.4新建spring-mvc.xml
 <!--注册组件扫描器,扫描@Controller--><context:component-scan base-package="com.aynu.**.controller"/><!--MVC注解驱动--><mvc:annotation-driven/><!--配置登录拦截器--><mvc:interceptors><mvc:interceptor><mvc:mapping path="/**"/><bean class="com.hrm.filter.LoginInterceptor"/></mvc:interceptor></mvc:interceptors><!--文件解析器--><bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"><property name="maxUploadSize" value="104857600" /><property name="maxInMemorySize" value="4096" /></bean>
3.5 spring-mybatis.xml,spring整合mybatis
<!--生成sqlSessionFactory--><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource"/><property name="configLocation" value="classpath:mybatis.xml"/></bean><!--生成dao接口的动态代理--><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.aynu.**.dao"/><property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/></bean>
3.6 把service注入到spring,新建spring-service.xml
<!--注册组件扫描器,扫描@Service--><context:component-scan base-package="com.aynu.**.service"/>
3.7 注册事务管理器,新建spring-tx.xml
<!--注册平台事务管理器--><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="find*" isolation="DEFAULT" propagation="REQUIRED"/><tx:method name="add*" isolation="DEFAULT" propagation="REQUIRED"/><tx:method name="modify*" isolation="DEFAULT" propagation="REQUIRED"/><tx:method name="remove*" isolation="DEFAULT" propagation="REQUIRED"/></tx:attributes></tx:advice><!--AOP切面配置--><aop:config><aop:pointcut id="myPC" expression="execution(* *..service.*.*(..))"/><aop:advisor advice-ref="txAdvice" pointcut-ref="myPC"/></aop:config>

4、web.xml配置

<!--注册中央调度器--><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:spring-*.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping><!--编码过滤器--><filter><filter-name>encodinFilter</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>encodinFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><!--登录验证过滤器--><!--<filter><filter-name>loginFilter</filter-name><filter-class>com.hrm.filter.LoginFilter</filter-class></filter><filter-mapping><filter-name>loginFilter</filter-name><url-pattern>*.jsp</url-pattern><url-pattern>*.do</url-pattern></filter-mapping>-->

5、过滤器(拦截器过滤器任选其一,我首选过滤器)

目的和作用:
防止用户越过登陆验证,直接输入地址进行操作。要想使用该网站,必须拦截登陆请求

/*
* 采用过滤器拦截越域用户
* 方法:通过获取session域中是否存在对象
* */
public class MyLoginFilter implements Filter {//此处应该放掉登陆界面和登陆的处理器private  String[] need_uri = {"/index.jsp","/loginForm.jsp","/login.do"};@Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {//index.jsp,loginForm.jsp,login.do放掉这三个HttpServletRequest request = (HttpServletRequest) servletRequest;HttpServletResponse response = (HttpServletResponse) servletResponse;//获取每次的请求路径String strURI = request.getRequestURI();//循环查看请求地址是否包含上三个boolean flag = false;for (String str : need_uri) {//如果包含,即已经登陆;防止空指针异常if (strURI.contains(str)) {//放行flag = true;filterChain.doFilter(request, response);break;}}if (!flag) {//不包含 拦截User login_user = (User) request.getSession().getAttribute("loginUser");if (login_user != null) {filterChain.doFilter(request, response);} else {request.setAttribute("login_error", "你还未登陆请登陆");//请求转发request.getRequestDispatcher("/index.jsp").forward(request, response);}}}
}

6.拦截器

public class LoginInterceptor implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {String requestURI = request.getRequestURI();if (requestURI.endsWith("/login.do")){return true;}User login_user = (User) request.getSession().getAttribute("login_user");if (login_user != null){return true;}else {request.setAttribute("login_error","您还未登录,请登录后访问!");request.getRequestDispatcher("/index.jsp").forward(request,response);return false;}}
}

7、用户登陆和注销操作

@RequestMapping("/login.do")public String login(User user, HttpSession session, Model model){//System.out.println(user);User login_user = userService.findUserByLoginnameAndPassword(user);//System.out.println(login_user);if (login_user != null){session.setAttribute("login_user",login_user);return "/jsp/main.jsp";}else {model.addAttribute("login_error","用户名或密码不正确,请重新输入!");return "/index.jsp";}}@RequestMapping("/logout.do")public String logout(HttpSession session,Model model){session.removeAttribute("login_user");model.addAttribute("login_error","退出成功,请重新登录!");return "/index.jsp";}

8、代码层建立

三层架构环境搭建: entity实体类:实体类:@Datapublic class Employee {private Integer empid;private String empName;private Integer partment;private String picture;private String state;}dao包:dao接口:public interface EmployeeDao {List<Employee> selectAllEmployees();}dao.xml<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.xja.ssm.dao.EmployeeDao"><select id="selectAllEmployees" resultType="Employee">select * from employee</select></mapper>service层:servicepublic interface EmployeeService {List<Employee> findAllEmployees();}serviceImpl:@Servicepublic class EmployeeServiceImpl implements EmployeeService {@Resourceprivate EmployeeDao employeeDao;@Overridepublic List<Employee> findAllEmployees() {return employeeDao.selectAllEmployees();}}controller层:@Controllerpublic class EmployeeController {@Autowiredprivate EmployeeService employeeService;@RequestMapping("/findAllEmp.do")public String findAllEmp(Model model){List<Employee> employeeList = employeeService.findAllEmployees();model.addAttribute("emps",employeeList);for(Employee emp:employeeList) {System.out.println(emp);}return "index.jsp";}}index.jsp:<a href="/findAllEmp.do">查看所有的员工</a><br>${emps}

java中SSM环境搭建相关推荐

  1. ssm实训报告心得_Java开发学习心得(一):SSM环境搭建

    Java开发学习心得(一):SSM环境搭建 有一点.NET的开发基础,在学校学过基础语法,对JAVA有点兴趣,就简单学习了一下,记录一下从哪些方面入手的,暂时不打算深入到原理方面,先简单搭下环境看看, ...

  2. SSM : 环境搭建

    SSM 环境搭建 目录创建 pom.xml SSM 逐层配置 一.目录 1.1 src/main/java 目录下的包(以下包要放在项目包下,如:com.imooc.项目名) entity: 存放实体 ...

  3. Groovy 和 Java 联合开发环境搭建

    Groovy 和 Java 联合开发环境搭建 1. 在主 pom 的 properties 中加上 <groovy.version>2.5.2</groovy.version> ...

  4. Java从入门到实战总结-1.1、Java基础之环境搭建和eclipse安装

    Java从入门到实战总结-1.1.Java基础之环境搭建和eclipse安装 文章目录 Java从入门到实战总结-1.1.Java基础之环境搭建和eclipse安装 1.Hello Java 1.1. ...

  5. 0、Java项目开发环境搭建

    Java项目开发环境搭建详解   工欲善其事,必先利其器. 一.环境搭建 1.JDK安装及环境变量配置 点击查看 2.Maven安装及环境变量配置 点击查看 Maven配置远程仓库地址:   打开ma ...

  6. 【Java全栈学习笔记:第一阶段:JavaSE】:Java入门及环境搭建

    Java全栈课程网站: KuangStudy JavaSE课程地址: 狂神说Java 参考书籍:Java大学实用教程(第四版) 目录 Java入门及环境搭建 Java帝国的诞生 Java发展 Java ...

  7. mac pro java后端开发环境搭建

    mac pro java后端开发环境搭建 前言 一.jdk 安装步骤 参考图片 二.maven 安装步骤 参考图片 三.git 安装步骤 参考图片 四.tomcat 安装步骤 参考图片 五.mysql ...

  8. Java入门与环境搭建

                                                                                         Java入门与环境搭建 软件 ...

  9. java+eclipse+selenium环境搭建

    这几天在学selenium,大头虾的我.安装环境还是遇到了挺多问题,赶紧来记录下.不然下次又...(参考虫师的<Selenium2 Java自动化测试实战>),就随便写写加深下自己的印象. ...

最新文章

  1. Java基础之多线程详细分析
  2. 关于Class.forName()
  3. 华硕老毛子(Padavan)——校园网电信宽带闪讯(NetKeeper)L2TP学校认证解决方案
  4. 为什么要Zipkin
  5. 深度学习基础(四)优化函数(梯度下降函数)
  6. nginx file not found 错误处理小记
  7. 笔记本电脑处理器_高通提示低成本5G芯片更强大的笔记本电脑处理器
  8. HTTP Error 500.19 – Internal Server Error – 0x80070021 (IIS 8.5)
  9. IT 日语学习 2012 06
  10. react 设置背景图片 (等比例显示,不拉伸)
  11. 【任务分配】基于matlab蚁群算法无人机任务分配【含Matlab源码 1265期】
  12. 群星服务器id不显示,群星代码([群星]求助,领袖特性代号怎么查看啊 NGA玩家社区)...
  13. Qt5.14.2 VS2019创建Qt项目并使用QSS美化界面(附QSS资源下载)
  14. 【Linux】一步一步学Linux——hostid命令(246)
  15. 技术图文:如何利用C#寻找免费的IP代理服务器?
  16. android item弹出popupwindow recycleview_PopupWindow+RecyclerView实现上下滑动框功能
  17. [HttpServlet] Error occured when handling uri: /cat/s/router
  18. ios10 上下黑边问题
  19. 广播(BroadcastReceiver)---安卓中的四大天王之一
  20. win7或win2008系统中,出现【已停止工作,联机检查解决方案并关闭该程序,关闭程序】解决方法!

热门文章

  1. RSS Can:将网站信息流转换为 RSS 订阅源(三)
  2. httpPost.setHeader,httpPost.addHeader 区别
  3. gettimeofday() 和 clock_gettime()函数 分析小结
  4. Aprioriall算法
  5. windows服务与计划任务
  6. Unexpected exception parsing XML document from class path resource
  7. Redis主从连接失败 connected_slaves:0
  8. WRT之Crosswalk简介
  9. PAT A1129 重载小于号快速解答
  10. [SV]SystemVerilog学习笔记之struct union