1、数据库配置
通过命令行操作mysql数据库,具体如下所示:
(1)利用mysql -u用户名 -p密码连接数据库如下:
(2)创建数据库并显示数据库。如下:
(3)创建数据库并指定编码,如下:
(4)显示创建的数据库指令,如下:
(5)查看数据库的状态,如下
至此,数据库配置完成。
2、Struts2环境配置
(1)现在官网http://struts.apache.org/download.cgi#struts221下载struts2 Jar包。(struts-2.3.16.3-all)。
(2)解压该文件要么直接把Jar包解压后的lib文件复制到WebRoot\WEB-INF\lib目录下。要么利用解压包中的app文件夹中的struts2-blank.war包中的。
具体如下:
把该目录下的jar包拷贝到web工程中即可。如下:
把如下文件拷贝到web工程的src中。
struts的配置如下:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <constant name="struts.custom.i18n.resources" value="messageResource" /> <constant name="struts.i18n.encoding" value="GBK" /> <!-- 配置为开发模式 --> <constant name="struts.devMode" value="true" /> <!-- 配置扩展名为action --> <constant name="struts.action.extension" value="action" /> <package name="default" namespace="/" extends="struts-default"> <!-- 需要自己写的内容 --> </package> <!-- Add packages here --> </struts>
拷贝该文件到web工程中。并做相应配置如下:
<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
3、hibernate配置
(1)官网下载jar包。http://hibernate.org/
(2)把该压缩包下的lib目录加载到WEB-INF目录下。如下所示:
(3)把如下配置文件拷贝到web工程src目录下
hibernate.cfg.xml配置文件如下:
<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <!-- Generated by MyEclipse Hibernate Tools. --> <hibernate-configuration> <session-factory> <property name="hbm2ddl.auto">update</property> <property name="dialect">org.hibernate.dialect.MySQLInnoDBDialect </property> <property name="connection.url">jdbc:mysql://localhost:3306/mtest </property> <property name="connection.username">root</property> <property name="connection.password">admin</property> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> </session-factory> </hibernate-configuration>
该文件为Hibernate默认的配置文件,当程序调用Configuration对象的configure()方法时,Hibernate将自动加载该文件。Hibernate配置文件的第一行是XML文件声明,指定该文件的版本和编码所用的字符集。Hibernate-configuration是其根元素,根元素里有session-factory子元素,该元素依次有很多property元素,这些property元素配置Hibernate连接数据库的必要信息。
除此之外,Hibernate并不推荐采用DriverManager来连接数据库,而是推荐使用数据源来管理数据库连接,这样能保证最好的性能。Hibernate推荐使用C3P0数据源,所以我们在上面配置文件的基础上添加配置数据源连接的信息,包括最大连接数、最小连接数等信息。完整的Hibernate配置文件如下:
<pre name="code" class="html"><pre name="code" class="html"><?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <!-- Generated by MyEclipse Hibernate Tools. -->
<hibernate-configuration><session-factory><property name="hbm2ddl.auto">update</property><property name="dialect">org.hibernate.dialect.MySQLInnoDBDialect</property><property name="connection.url">jdbc:mysql://localhost:3306/mTest</property><property
name="connection.username">root</property><property name="connection.password">admin</property><property name="connection.driver_class">com.mysql.jdbc.Driver</property><property name="hibernate.c3p0.max_size">20</property><property name="hibernate.c3p0.min_size">1</property><property
name="hibernate.c3p0.timeout">5000</property><property name="hibernate.c3p0.max_statements">100</property><property name="hibernate.c3p0.idle_test_period">3000</property><property name="hibernate.c3p0.acquire_increment">2</property><property name="hibernate.c3p0.validate">true</property></session-factory></hibernate-configuration>
4、Spring 配置
(1)加载jar包
(2)写配置文件如下demo
<?xml version="1.0" encoding="GBK"?> <!-- Spring配置文件的根元素,并指定Schema信息 --> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd"> <!-- 定义数据源Bean,使用C3P0数据源实现 --> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" p:driverClass="com.mysql.jdbc.Driver" p:jdbcUrl="jdbc:mysql://localhost:3306/auction" p:user="root" p:password="32147" p:maxPoolSize="200" p:minPoolSize="2" p:initialPoolSize="2" p:maxIdleTime="2000" destroy-method="close"/> <!-- 定义Hibernate的SessionFactory 并为它注入数据源,注入Hibernate配置文件等。--> <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean" p:dataSource-ref="dataSource"> <property name="annotatedClasses"> <list> <value>org.crazyit.auction.domain.AuctionUser</value> <value>org.crazyit.auction.domain.Bid</value> <value>org.crazyit.auction.domain.Item</value> <value>org.crazyit.auction.domain.Kind</value> <value>org.crazyit.auction.domain.State</value> </list> </property> <!-- 定义Hibernate的SessionFactory的属性 --> <property name="hibernateProperties"> <props> <!-- 指定数据库方言 --> <prop key="hibernate.dialect"> org.hibernate.dialect.MySQL5InnoDBDialect</prop> <!-- 显示Hibernate持久化操作所生成的SQL --> <prop key="hibernate.show_sql">true</prop> <!-- 将SQL脚本进行格式化后再输出 --> <prop key="hibernate.format_sql">true</prop> </props> </property> </bean> <!-- 配置Hibernate的局部事务管理器,使用HibernateTransactionManager类 --> <!-- 该类实现PlatformTransactionManager接口,是针对Hibernate的特定实现--> <!-- 配置HibernateTransactionManager时需要依注入SessionFactory的引用 --> <bean id="transactionManager" class= "org.springframework.orm.hibernate4.HibernateTransactionManager" p:sessionFactory-ref="sessionFactory"/> <!-- 配置事务切面Bean,指定事务管理器 --> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <!-- 用于配置详细的事务语义 --> <tx:attributes> <!-- 所有以'get'开头的方法是read-only的 --> <tx:method name="get*" read-only="true"/> <!-- 其他方法使用默认的事务设置 --> <tx:method name="*"/> </tx:attributes> </tx:advice> <aop:config> <!-- 配置一个切入点,匹配指定包下所有以Impl结尾的类执行的所有方法 --> <aop:pointcut id="leeService" expression="execution(* org.crazyit.auction.service.impl.*Impl.*(..))"/> <!-- 指定在leeService切入点应用txAdvice事务切面 --> <aop:advisor advice-ref="txAdvice" pointcut-ref="leeService"/> </aop:config> <!-- 定义JavaMailSenderImpl,它用于发送邮件 --> <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> <!-- 指定发送邮件的SMTP服务器地址 --> <property name="host" value="smtp.163.com"/> <property name="javaMailProperties"> <props> <prop key="mail.smtp.auth">true</prop> <prop key="mail.smtp.timeout">25000</prop> </props> </property> <!-- 指定登录邮箱的用户名、密码 --> <property name="username" value="spring_test"/> <property name="password" value="123abc"/> </bean> <!-- 定义SimpleMailMessage Bean,它代表了一份邮件 --> <bean id="mailMessage" class="org.springframework.mail.SimpleMailMessage"> <!-- 指定发件人地址 --> <property name="from" value="spring_test@163.com"/> <!-- 指定邮件标题 --> <property name="subject" value="竞价通知"/> </bean> <!-- 配置业务逻辑组件 --> <!-- 为业务逻辑组件注入所需的DAO组件 --> <bean id="mgr" class="org.crazyit.auction.service.impl.AuctionManagerImpl" p:userDao-ref="auctionUserDao" p:bidDao-ref="bidDao" p:itemDao-ref="itemDao" p:kindDao-ref="kindDao" p:stateDao-ref="stateDao" p:mailSender-ref="mailSender" p:message-ref="mailMessage"/> <!-- 配置一个TimerTask Bean --> <bean id="checkWiner" class="org.crazyit.auction.schedule.CheckWiner"> <!-- 依赖注入业务逻辑组件 --> <property name="mgr" ref="mgr"/> </bean> <!-- 将TimerTask Bean:checkWiner包装成可周期性执行的任务调度Bean 并指定调度频率和延迟 --> <bean id="scheduledTask" class="org.springframework.scheduling.timer.ScheduledTimerTask" p:delay="0" p:period="86400000" p:timerTask-ref="checkWiner" /> <!-- 启动实际调度 --> <bean id="timerFactory" class="org.springframework.scheduling.timer.TimerFactoryBean"> <!-- 下面列出所有需要调用的任务调度Bean --> <property name="scheduledTimerTasks"> <list> <ref bean="scheduledTask"/> </list> </property> </bean> </beans>
5、Javaweb单元测试
(1)加载jar包
配置完成。