直接上代碼 首先是從程序的入口開始說: web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <!-- 設置session過時的時間 --> <session-config> <session-timeout>20</session-timeout> </session-config> <!-- 讀取spring的配置文件 --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:config/spring.xml;classpath:config/spring-myBatis.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <listener> <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class> </listener> <!-- 設置字符編碼,將全部的字符編碼贊成設置爲utf-8 --> <filter> <filter-name>filterEncoding</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>filterEncoding</filter-name> <url-pattern>/</url-pattern> </filter-mapping> <!-- 生成一次性驗證碼的servlet --> <servlet> <servlet-name>verifyCode</servlet-name> <servlet-class>com.longhang.tool.verifyCode.VerifyCodeServlet</servlet-class> </servlet> <!-- 將全部*.do的請求交給springMVC的DispatcherServlet來處理 --> <servlet> <servlet-name>DispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:config/springMVC-config.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>verifyCode</servlet-name> <url-pattern>/verifyCode</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>DispatcherServlet</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> </web-app> springMVC的配置文件 <?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" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <!-- 配置自動掃描的包,讓其掃描 com.longhang,controller下面的全部包 --> <context:component-scan base-package = "com.longhang.controller"></context:component-scan> <!-- 配置視圖解析器 將視圖邏輯名解析爲/*.jsp --> <bean class = "org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name = "prefix" value = "/"></property> <property name = "suffix" value = ".jsp"></property> </bean> </beans> spring.xml的配置 <?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" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd "> <context:property-placeholder location="classpath:config/druid.properties" /> <!-- 自動掃描(自動注入) --> <context:component-scan base-package = "com.longhang.service"></context:component-scan> </beans> spring-myBatis.xml配置 <?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: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.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd "> <!-- 配置數據源 --><!-- <bean name = "datasource" class = "com.alibaba.druid.pool.DruidDataSource" init-method = "init" destroy-method = "close"> <property name ="url" value = "${jdbc_url}"></property> <property name="username" value="${jdbc_userName}" /> <property name="password" value="${jdbc_password}" /> </bean> --><bean name = "datasource" class = "com.alibaba.druid.pool.DruidDataSource" init-method = "init" destroy-method = "close"> <property name ="url" value = "jdbc:mysql://localhost:8000/bookShopping"></property> <property name="username" value="root" /> <property name="password" value="13072399672" /> </bean> <!--配置sqlSessionFactory 並讀取mybatis的一些配置--> <bean name = "sqlSessionFactory" class = "org.mybatis.spring.SqlSessionFactoryBean"> <property name = "dataSource" ref = "datasource"></property> <property name="mapperLocations" value="classpath:mapper/*.xml"/> </bean> <!-- 自動掃描 將Mapper接口生成代理注入到Spring --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.longhang.dao" /> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" /> </bean> <!-- 配置事物 --> <bean id = "transactionManager" class = "org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name = "dataSource" ref = "datasource"></property> </bean> <!-- <tx:annotation-driven transaction-manager = "transactionManager"/> --> <!-- 事物的具體內容 --> <tx:advice id="transactionAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="add*" propagation="REQUIRED" /> <tx:method name="append*" propagation="REQUIRED" /> <tx:method name="insert*" propagation="REQUIRED" /> <tx:method name="save*" propagation="REQUIRED" /> <tx:method name="update*" propagation="REQUIRED" /> <tx:method name="modify*" propagation="REQUIRED" /> <tx:method name="edit*" propagation="REQUIRED" /> <tx:method name="delete*" propagation="REQUIRED" /> <tx:method name="remove*" propagation="REQUIRED" /> <tx:method name="repair" propagation="REQUIRED" /> <tx:method name="delAndRepair" propagation="REQUIRED" /> <tx:method name="get*" propagation="SUPPORTS" /> <tx:method name="find*" propagation="SUPPORTS" /> <tx:method name="load*" propagation="SUPPORTS" /> <tx:method name="search*" propagation="SUPPORTS" /> <tx:method name="datagrid*" propagation="SUPPORTS" /> <tx:method name="*" propagation="SUPPORTS" /> </tx:attributes> </tx:advice> <!-- 定義一個切面,在定義的切面上加入事物 --> <aop:config> <aop:pointcut id="transactionPointcut" expression="execution(* com.longhang.service..*Impl.*(..))" /> <aop:advisor pointcut-ref="transactionPointcut" advice-ref="transactionAdvice" /> </aop:config> </beans> 關於mybatis的映射文件 <?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="com.longhang.dao.userDao.UserDao" > <resultMap id = "baseResultMap" type = "com.longhang.entity.user.User"> <id column = "uid" property = "uid" jdbcType = "CHAR"/> <result column = "loginname" property = "loginname" jdbcType = "VARCHAR"/> <result column = "loginpass" property = "loginpass" jdbcType = "VARCHAR"/> <result column = "email" property = "email" jdbcType = "VARCHAR"/> <result column = "status" property = "status" jdbcType = "VARCHAR"/> <result column = "activationCode" property = "activationCode" jdbcType = "CHAR"/> </resultMap> <sql id = "base_column_list"> uid,loginname,loginpass,email,status,activationCode </sql> <!--根據id查詢 返回的類型爲User --> <select id="findById" resultMap="baseResultMap" parameterType="java.lang.String" > select <include refid="base_column_list" /> from l_user where uid = #{uid,jdbcType=CHAR} </select> <!-- 根據activationCode查詢 返回值是User --> <select id = "findByActivationCode" resultMap = "baseResultMap" parameterType = "java.lang.String"> select <include refid = "base_column_list"/> from l_user where activationCode = #{activationCode} </select> <!--
框架/平臺構成:
Maven+Springmvc + Mybatis + Shiro(權限)+ Tiles(模板) +ActiveMQ(消息隊列) + Rest(服務) + WebService(服務)+ EHcache(緩存) + Quartz(定時調度)+ Html5(支持PC、IOS、Android)java
用戶權限系統:
組織結構:角色、用戶、用戶組、組織機構;權限點:頁面、方法、按鈕、數據權限、分級受權
項目管理新體驗:
快速出原型系統、組件樹、版本控制、模塊移植、協同開發、實時監控、發佈管理
可持續集成:
全部組件可移植、可定製、可擴充,開發成果不斷積累,造成可持續發展的良性循環
支持平臺平臺:
Windows XP、Windows 7 、Windows 10 、 Linux 、 Unix
服務器容器:
Tomcat 5/6/7 、Jetty、JBoss、WebSphere 8.5 mysql