使用MySQL运行Spring Security 2.0.3(Acegi2)的Contacts实例

初学Spring Security,例子的数据库是在内存中的,摸不着头脑,在网上的找了半天没有找到,所以想办法整到mysql中了.
1.使用修改Server模式运行hsqldb,这里就不多说了,这样做的目的是为了把hsqldb中的数据移植到mysql.你也可以手工修改sample.contact.DataSourcePopulator来直接创建mysql数据库(不懂hsqldb的sql语句所以我没有采取这种方式).
2.使用MySQLMigrationTool( http://dev.mysql.com/downloads/gui-tools/5.0.html)把hsqldb移植到mysql(这一步也很简单,下一步下一步就可以了),记得在本地保存生成的脚本,自动移植只会创建数据库,插入数据不会成功,因为MySQLMigrationTool错误地将VARCHAR_IGNORECASE类型转换成了TINYINT.因此我手动将所有VARCHAR_IGNORECASE手工改成了VARCHAR.OK这次能正确运行了.正确的mysql脚本见附件.
3.在plicationContext-common-business.xml中注释掉
  <bean id="dataSourcePopulator"  
     class="sample.contact.DataSourcePopulator">
        <property name="dataSource" ref="dataSource"/>
        <property name="mutableAclService" ref="aclService"/>
        <property name="platformTransactionManager"     
       ref="transactionManager"/>
    </bean>
(例子是用这个bean来在每次服务器启动时自动在内存中创建hsqldb数据库的,我们既然有了持久的数据库就不需要这个了,不过我个人觉得这个类还是有参考价值的.
3.将mysql的驱动添加到classpath中(lib下).
4.修改applicationContext-common-business.xml中的dataSource bean.
修改后的内容如下,自己修改你的用户名和密码.
  <bean id="dataSource"
    class="org.springframework.jdbc.datasource.
    DriverManagerDataSource ">
        <property name = "driverClassName">
     <value >org.gjt.mm.mysql.Driver</value>
</property>
<property name= "url">
  <value>jdbc:mysql://localhost:3306/acl?
             useUnicode=true&amp;characterEncoding=UTF-
             8&amp;autoReconnect=true&amp;
             autoReconnectForPools=true</value>
</property>
<property name= "username">
<value>root</value> 
</property>
<property name="password"> 
<value> </value > 
</property>
     </bean>

3.部署并运行myeclipse工程见附件,我是初学者,各位指点.

你可能感兴趣的:(java,spring,mysql,UI,Security)