Java绿地(~ming~)

Java 草地

常用链接

统计

最新评论

ssh实现的包含acegi的项目框架(注释少)

一.Hibernate持久化层
1.model:
a.User.java

package com.witbridge.payroll.model;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import org.acegisecurity.GrantedAuthority;
import org.acegisecurity.userdetails.UserDetails;

@SuppressWarnings(
"unchecked")
public class User implements Serializable, UserDetails {
    
private static final long serialVersionUID = 2289410331437985768L;
    
    
private Integer id;
    
private String username;
    
private String password;
    
private String email;
    
private boolean enabled;
    
private boolean accountExpired;
    
private boolean accountLocked;
    
private boolean credentialsExpired;
    
private Integer associateId;
    
private List roles = new ArrayList();
    
    
//~============================getter & settter
    public Integer getId() {
        
return id;
    }


    
public void setId(Integer id) {
        
this.id = id;
    }

    
    
public boolean isAccountExpired() {
        
return accountExpired;
    }


    
public void setAccountExpired(boolean accountExpired) {
        
this.accountExpired = accountExpired;
    }


    
public boolean isAccountLocked() {
        
return accountLocked;
    }


    
public void setAccountLocked(boolean accountLocked) {
        
this.accountLocked = accountLocked;
    }


    
public boolean isCredentialsExpired() {
        
return credentialsExpired;
    }


    
public void setCredentialsExpired(boolean credentialsExpired) {
        
this.credentialsExpired = credentialsExpired;
    }


    
public void setEnabled(boolean enabled) {
        
this.enabled = enabled;
    }


    
public void setPassword(String password) {
        
this.password = password;
    }


    
public void setUsername(String username) {
        
this.username = username;
    }

    
    
public String getEmail() {
        
return email;
    }


    
public void setEmail(String email) {
        
this.email = email;
    }

    
    
public List getRoles() {
        
return roles;
    }


    
public void setRoles(List roles) {
        
this.roles = roles;
    }


    
public void addRole(Role role) {
        roles.add(role);
    }

    
    
public GrantedAuthority[] getAuthorities() {
        
return (GrantedAuthority[]) roles.toArray(new GrantedAuthority[0]);
    }


    
public String getPassword() {
        
return password;
    }


    
public String getUsername() {
        
return username;
    }


    
public boolean isAccountNonExpired() {
        
return !isAccountExpired();
    }


    
public boolean isAccountNonLocked() {
        
return !isAccountLocked();
    }


    
public boolean isCredentialsNonExpired() {
        
return !isCredentialsExpired();
    }


    
public boolean isEnabled() {
        
return enabled;
    }


    
public Integer getAssociateId() {
        
return associateId;
    }


    
public void setAssociateId(Integer associateId) {
        
this.associateId = associateId;
    }

}


Role.java
package com.witbridge.payroll.model;

import java.io.Serializable;

import org.acegisecurity.GrantedAuthority;


public class Role implements Serializable, GrantedAuthority {
    
    
private static final long serialVersionUID = -3187100981785730494L;
    
    
private Integer id;
    
private String name;
    
    
//~=================================Constructor
    public Role() {
    }

    
public Role(Integer id, String name) {
        
this.id = id;
        
this.name = name;
    }

    
    
//~=================================getter & setter
    public Integer getId() {
        
return id;
    }

    
public void setId(Integer id) {
        
this.id = id;
    }

    
public String getName() {
        
return name;
    }

    
public void setName(String name) {
        
this.name = name;
    }

    
    
public String getAuthority() {
        
return name;
    }

}


UserRole:
package com.witbridge.payroll.model;

import java.io.Serializable;

public class UserRole implements Serializable {
    
private static final long serialVersionUID = 3627077608786533159L;

    
private Integer userId;
    
private Integer roleId;

    
public Integer getRoleId() {
        
return roleId;
    }


    
public void setRoleId(Integer roleId) {
        
this.roleId = roleId;
    }


    
public Integer getUserId() {
        
return userId;
    }


    
public void setUserId(Integer userId) {
        
this.userId = userId;
    }


}


测试的Demo:Person.java
package com.witbridge.payroll.model;

public class Person {
   
private Integer id;
   
private String username;
   
private String password;

public Integer getId() {
    
return id;
}

public void setId(Integer id) {
    
this.id = id;
}

public String getPassword() {
    
return password;
}

public void setPassword(String password) {
    
this.password = password;
}

public String getUsername() {
    
return username;
}

public void setUsername(String username) {
    
this.username = username;
}

   
}



2.Hibernate映射文件
0.数据源的配置

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
    
<!-- DataSource definition -->
    
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        
<property name="driverClassName" value="COM.ibm.db2.jdbc.net.DB2Driver" />
        
<property name="url" value="jdbc:db2:192.168.0.120:payrolla" />
        
<property name="username" value="db2admin" />
        
<property name="password" value="db2admin" />
    
</bean>
    
<!--  
    
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
        
<property name="url" value="jdbc:mysql://localhost:3306/payroll1" />
        
<property name="username" value="root" />
        
<property name="password" value="root" />
    
</bean>
    
-->
    
<!-- Hibernate SessionFactory -->
    
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        
<property name="dataSource" ref="dataSource" />
        
<property name="mappingDirectoryLocations">
            
<list>    <value>classpath:/com/witbridge/payroll/hbm</value>    </list>
        
</property>
        
<property name="hibernateProperties">
            
<props>    
                
<prop key="hibernate.dialect">org.hibernate.dialect.DB2Dialect</prop>
                
<prop key="hibernate.show_sql">true</prop>
            
</props>
        
</property>
    
</bean>

    
<!-- Transaction manager for a single Hibernate SessionFactory -->
    
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        
<property name="sessionFactory" ref="sessionFactory" />
    
</bean>
    
</beans>




a.user.hbm

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"