Guest User

Untitled

a guest
Jun 22nd, 2018
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.80 KB | None | 0 0
  1. ## Spring-hibernate config
  2. <!-- Enable annotation configuration -->
  3. <context:annotation-config/>
  4.  
  5. <!-- Scan packages for Spring annotations -->
  6. <context:component-scan base-package="myapp.service"/>
  7.  
  8. <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
  9. <!-- ommitted -->
  10. </bean>
  11.  
  12. <!-- Transaction support beans -->
  13. <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
  14. <property name="sessionFactory" ref="sessionFactory"/>
  15. </bean>
  16.  
  17. <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
  18. <property name="sessionFactory" ref="sessionFactory"/>
  19. </bean>
  20.  
  21. <!-- Spring AOP auto-proxy creation (required to support Shiro annotations) -->
  22. <bean class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator"/>
  23.  
  24. <!-- Populates the database with default data. -->
  25. <bean id="populator" class="myapp.service.BootstrapDataPopulator">
  26. <property name="sessionFactory" ref="sessionFactory"/>
  27. </bean>
  28.  
  29. <!-- Post processor that automatically invokes init() and destroy() methods -->
  30. <bean id="lifecycleBeanPostProcessor" class="org.apache.shiro.spring.LifecycleBeanPostProcessor"/>
  31.  
  32.  
  33. ## myapp.service.BootstrapDataPopulator.java
  34. @Transactional
  35. public class BootstrapDataPopulator extends HibernateDaoSupport {
  36.  
  37. private static final Logger log = LoggerFactory.getLogger(BootstrapDataPopulator.class);
  38.  
  39. public void initDao() throws Exception {
  40. buildRolesData();
  41. buildMemberData();
  42. }
  43.  
  44. private static final String[][] ROLES = {
  45. {"member"},
  46. {"manager"},
  47. {"admin"}
  48. };
  49.  
  50. private void buildRolesData() {
  51. log.debug("Building Roles Data");
  52. for (int i = 0; i < ROLES.length; i++) {
  53. Role r = new Role(ROLES[i][0]);
  54. getSession().save(r);
  55. }
  56. }
  57.  
  58. private static final String[][] MEMBERS = {
  59. {"tom","Tom","Smith"},
  60. {"member","Sue","Stark"},
  61. {"admin","Mark","Brisk"}
  62. };
  63.  
  64. private static final String[][] MEMBER_ROLES = {
  65. {
  66. "member","manager"
  67. },
  68. {
  69. "member"
  70. },
  71. {
  72. "member","manager","admin"
  73. }
  74. };
  75.  
  76. private void buildMemberData() {
  77. log.debug("Building Member Data");
  78. for (int i = 0; i < MEMBERS.length; i++) {
  79. Member m= new Member();
  80. m.setUsername(MEMBERS[i][0]);
  81. m.setPassword(MEMBERS[i][0]);
  82.  
  83. for (int j = 0; j < MEMBER_ROLES[i].length; j++) {
  84. Role r = (Role) getSession().createCriteria(Role.class)
  85. .add(Restrictions.eq("name", MEMBER_ROLES[i][j]))
  86. .uniqueResult();
  87. if (r != null) {
  88. m.addRole(r);
  89. }
  90. }
  91. getSession().save(m);
  92. }
  93. }
  94. }
  95.  
  96. ## myapp.model.Member.java
  97. @Entity
  98. @Table(name="members")
  99. @Cache(usage= CacheConcurrencyStrategy.READ_WRITE)
  100. public class Member extends AbstractEntity {
  101. private static final long serialVersionUID = 1L;
  102.  
  103. private String username;
  104. private String password;
  105. private Set<Role> roles = new HashSet<Role>();
  106.  
  107. public Member() {
  108. super();
  109. }
  110.  
  111. @Basic(optional=false)
  112. @Column(length=100)
  113. @Index(name="idx_members_username")
  114. public String getUsername() {
  115. return username;
  116. }
  117. public void setUsername(String username) {
  118. this.username = username;
  119. }
  120.  
  121. @Basic(optional=false)
  122. @Column(length=255)
  123. public String getPassword() {
  124. return password;
  125. }
  126. public void setPassword(String password) {
  127. this.password = password;
  128. }
  129.  
  130. @ManyToMany(cascade = CascadeType.ALL)
  131. @JoinTable(name="members_roles")
  132. @Cache(usage=CacheConcurrencyStrategy.READ_WRITE)
  133. public Set<Role> getRoles() {
  134. return this.roles;
  135. }
  136. public void setRoles(Set<Role> roles) {
  137. this.roles = roles;
  138. }
  139. public Role hasRole(Role role) {
  140. if (this.roles.contains(role)) {
  141. return role;
  142. }
  143. return null;
  144. }
  145. public boolean addRole(Role role) {
  146. return this.roles.add(role);
  147. }
  148. public boolean removeRole(Role role) {
  149. return this.roles.remove(role);
  150. }
  151.  
  152. }
  153.  
  154. ## myapp.model.Role.java
  155. @Entity
  156. @Table(name="roles")
  157. @Cache(usage= CacheConcurrencyStrategy.READ_WRITE)
  158. public class Role implements Serializable {
  159. private static final long serialVersionUID = 1L;
  160.  
  161. private Long id;
  162. private String name;
  163.  
  164. protected Role() {
  165. }
  166. public Role(String name) {
  167. this.name = name;
  168. }
  169.  
  170. @Id
  171. @GeneratedValue
  172. public Long getId() {
  173. return id;
  174. }
  175. public void setId(Long id) {
  176. this.id = id;
  177. }
  178.  
  179. @Basic(optional=false)
  180. @Column(length=100)
  181. @Index(name="idx_roles_name")
  182. public String getName() {
  183. return name;
  184. }
  185. public void setName(String name) {
  186. this.name = name;
  187. }
  188. }
Add Comment
Please, Sign In to add comment