2016-09-16 1 views
0
<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:aop="http://www.springframework.org/schema/aop" 
    xmlns:mvc="http://www.springframework.org/schema/mvc" 
    xmlns:tx="http://www.springframework.org/schema/tx" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd 
    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd 
    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd 
    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd 
    http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd 
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd"> 

<bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"/> 
<context:property-placeholder location="classpath:application.properties" /> 

<mvc:annotation-driven /> 

<context:component-scan base-package="com.bizega.bzcrm" /> 

<!-- 
Most controllers will use the ControllerClassNameHandlerMapping above, but 
for the index controller we are using ParameterizableViewController, so we must 
define an explicit mapping for it. 
--> 
<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> 
    <property name="mappings"> 
     <props> 
      <prop key="index.htm">indexController</prop> 
     </props> 
    </property> 
</bean> 

<bean id="viewResolver" 
     class="org.springframework.web.servlet.view.InternalResourceViewResolver" 
     p:prefix="/WEB-INF/jsp/" 
     p:suffix=".jsp" /> 

<!-- 
The index controller. 
--> 
<bean name="indexController" 
     class="org.springframework.web.servlet.mvc.ParameterizableViewController" 
     p:viewName="index" /> 


<!-- <bean id="multipartResolver" 
     class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> 
    <property name="maxUploadSize" value="10000000" /> 
</bean>--> 

<!-- DataSource --> 
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
    <property name="driverClassName" value="${jdbc.driverClassName}" /> 
    <property name="url" value="${jdbc.url}" /> 
    <property name="username" value="${jdbc.username}" /> 
    <property name="password" value="${jdbc.password}" /> 
</bean> 

<!--  Hibernate SessionFactory --> 
<bean id="sessionFactory" 
     class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"> 
    <property name="dataSource" ref="dataSource"></property> 
    <property name="hibernateProperties"> 
     <props> 
      <prop key="hibernate.dialect">${hibernate.dialect}</prop> 
      <prop key="hibernate.hbm2ddl.auto">${hbm2ddl.auto}</prop> 
      <prop key="hibernate.format_sql">${hibernate.format_sql}</prop> 
      <prop key="hibernate.show_sql">${hibernate.show_sql}</prop> 
     </props> 
    </property> 
    <property name="packagesToScan" value="com.bizega.bzcrm.hbmapping"></property> 
</bean> 

<bean id="hibernateUtil" class="com.bizega.bzcrm.util.HibernateUtil"> 
    <property name="sessionFactory" ref="sessionFactory" /> 
</bean> 

<!-- Transaction --> 
<bean id="transactionManager" 
     class="org.springframework.orm.hibernate5.HibernateTransactionManager"> 
    <property name="sessionFactory" ref="sessionFactory" /> 
</bean> 

<tx:annotation-driven transaction-manager="transactionManager" /> 

できません

これは、これは私のaaplicationContext.xmlである私のdispathureservlet.xml

<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:aop="http://www.springframework.org/schema/aop" 
    xmlns:tx="http://www.springframework.org/schema/tx" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd 
    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd 
    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd"/> 

ある

@Transactional 
@Controller 
public class EmployeeController { 

@Autowired 
private SessionFactory sessionFactory; 

EmployeeService empService = new EmployeeService(); 

@RequestMapping(value = "/{menuid}", method = RequestMethod.GET) 
@ResponseBody 
public ResponseEntity<List<ModuleWrapper>> getModule(@PathVariable int menuid) throws Exception { 
    return new ResponseEntity<>(empService.getModule(), HttpStatus.OK); 
} 

@RequestMapping(value = "/save.lx", method = RequestMethod.POST) 
public String createEmployee(@ModelAttribute EmployeeFormBean employee, ModelMap obj) { 
    Map map = new HashMap(); 
    map.put("sf", sessionFactory); 
    Employee employee1 = new Employee(); 
    employee1.setDesgid(employee.getDesigid()); 
    employee1.setEmpcode(employee.getEmpcode()); 
    employee1.setMobile(employee.getMobile()); 
    employee1.setEmpname(employee.getName()); 
    employee1.setAhid(1); 
    employee1.setDeptid(1); 
    employee1.setEmail(employee.getEmail()); 
    employee1.setPhone(employee.getPhone()); 
    employee1.setIsactive(1); 
    empService.saveEmployee(employee1, map); 
    List<Employee> employees = empService.findAllEmployees(map); 
    obj.addAttribute("employees", employees); 

    return "userlist"; 
} 

@RequestMapping(value = "/deleteuser.lx", method = RequestMethod.GET) 
public String deleteEmployee(@RequestParam("id") int id, ModelMap obj) { 
    Map map = new HashMap(); 
    map.put("sf", sessionFactory); 
    empService.deleteEmployeeById(id, map); 
    List<Employee> employees = empService.findAllEmployees(map); 
    obj.addAttribute("employees", employees); 
    return "userlist"; 
} 

@RequestMapping(value = "/edituser.lx", method = RequestMethod.GET) 
public String updateEmployee(@RequestParam("id") int id, ModelMap obj) { 
    Map map = new HashMap(); 
    map.put("sf", sessionFactory); 
    Employee emp = empService.findById(id, map); 
    obj.addAttribute("employee", emp); 
    return "updateEmp"; 
} 

@RequestMapping(value = "/update.lx", method = RequestMethod.POST) 
public String updateEmployeeDetails(@ModelAttribute Employee employee, ModelMap obj) { 
    Map map = new HashMap(); 
    map.put("sf", sessionFactory); 
    empService.updateEmployee(employee, map); 
    List<Employee> employees = empService.findAllEmployees(map); 
    obj.addAttribute("employees", employees); 
    return "userlist"; 
} 

@RequestMapping(value = "/listEmp.lx") 
public String listEmployee(ModelMap obj) { 
    Map map = new HashMap(); 
    map.put("sf", sessionFactory); 
    List<Employee> employees = empService.findAllEmployees(map); 
    obj.addAttribute("employees", employees); 
    return "userlist"; 
} 

@RequestMapping(value = "/updateEmpField.lx") 
public String updateSingleField(@RequestBody SingleField singleField) { 
    Map map = new HashMap(); 
    map.put("sf", sessionFactory); 
    empService.updateEmpField(singleField,map); 
    // obj.addAttribute("employees", employees); 
    return "userlist"; 
} 

} 

これは私のコントローラです

@Transactional 
@Service("empService") 
public class EmployeeService { 

@Autowired 
SessionFactory sessionFactory; 

EmployeeDataManager datamanager = new EmployeeDataManager(); 

public List<ModuleWrapper> getModule() throws Exception { 
    return datamanager.getModule(); 
} 

@Transactional 
public void saveEmployee(Employee employee, Map map) { 
    datamanager.saveEmployee(employee, map); 
} 

public List<Employee> findAllEmployees(Map map) { 
    return datamanager.findAllEmployees(map); 
} 

public void deleteEmployeeById(int id, Map map) { 
    datamanager.deleteEmployeeById(id, map); 
} 

public Employee findById(int id, Map map) { 
    return datamanager.findById(id, map); 
} 

public void updateEmployee(Employee employee, Map map) { 
    datamanager.updateEmployee(employee, map); 
} 

public void updateEmpField(SingleField singleField,Map map) 
{ 
    datamanager.updateEmpField(singleField,map); 
} 

} 

これはこれはこれは私がコントローラでSessionFactoryのオブジェクトを取得しますが、私の中でそれを取得していない午前私のHibernateUtilのクラス

である私のデータマネージャ

@Transactional 
@Component 
public class HibernateUtil { 

@Autowired 
private SessionFactory sessionFactory; 



public void setSessionFactory(SessionFactory sessionFactory) { 
    this.sessionFactory = sessionFactory; 
} 

public <T> T save(final T o, Map map) { 
    sessionFactory = (SessionFactory) map.get("sf"); 
    return (T) sessionFactory.getCurrentSession().save(o); 
} 

public void delete(final Object object, Map map) { 
    sessionFactory = (SessionFactory) map.get("sf"); 
    sessionFactory.getCurrentSession().delete(object); 
} 

/** 
* 
* @param <T> 
* @param type 
* @param id 
* @param map 
* @return 
*/ 
public <T> T get(final Class<T> type, final int id, Map map) { 
    sessionFactory = (SessionFactory) map.get("sf"); 
    return (T) sessionFactory.getCurrentSession().get(type, id); 
} 


public <T> T merge(final T o) { 
    return (T) sessionFactory.getCurrentSession().merge(o); 
} 
/** 
* 
* 
* @param <T> 
* @param o 
*/ 
public <T> void saveOrUpdate(final T o) { 
    sessionFactory.getCurrentSession().saveOrUpdate(o); 
} 

public <T> List<T> getAll(final Class<T> type, Map map) { 
    sessionFactory = (SessionFactory) map.get("sf"); 
    final Session session = sessionFactory.getCurrentSession(); 
    final Criteria crit = session.createCriteria(type); 
    return crit.list(); 
} 

public <T> void updateSingleField(final Class<T> type, SingleField singleField, Map map) { 
    sessionFactory = (SessionFactory) map.get("sf"); 
    final Session session = sessionFactory.getCurrentSession(); 
    Query query = session.createQuery("update " + type.getSimpleName() + " set " + singleField.getColName() + "=:newValue where id=:id"); 
    query.setParameter("newValue", singleField.getNewValue()); 
    query.setParameter("id", singleField.getId()); 
    int result = query.executeUpdate(); 
} 

public void test() { 
    System.out.println("dfdfds " + sessionFactory); 
    throw new UnsupportedOperationException("Not supported yet."); 
} 
} 

である私のサービス

@Transactional 
@Component 
public class EmployeeDataManager extends HibernateUtil { 
private HibernateUtil hbutil; 

@Autowired 
SessionFactory sessionFactory; 


public void saveEmployee(final Employee employee, Map map) { 
    hbutil = new HibernateUtil(); 
    hbutil.save(employee, map); 
} 

public List<Employee> findAllEmployees(Map map) { 
    hbutil = new HibernateUtil(); 
    hbutil.test(); 
    return hbutil.getAll(Employee.class, map); 
} 

public void deleteEmployeeById(int id, Map map) { 
    SessionFactory sessionFactory = (SessionFactory) map.get("sf"); 
    Employee employee = hbutil.get(Employee.class, id, map); 
    hbutil.setSessionFactory(sessionFactory); 
    hbutil.delete(employee, map); 
} 

public Employee findById(int id, Map map) { 
    hbutil = new HibernateUtil(); 
    Employee employee = hbutil.get(Employee.class, id, map); 
    return employee; 
} 

public void updateEmployee(Employee employee, Map map) { 
    hbutil = new HibernateUtil(); 
    Employee e1 = hbutil.get(Employee.class, employee.getEmpid(), map); 
    e1.setEmpname(employee.getEmpname()); 
    e1.setDesgid(employee.getDesgid()); 
    e1.setEmail(employee.getEmail()); 
    e1.setEmpcode(employee.getEmpcode()); 
    e1.setMobile(employee.getMobile()); 
    e1.setPhone(employee.getPhone()); 
    // e1.setEmail(employee.getEmail()); 
    hbutil.saveOrUpdate(e1); 
} 

} 

ですdatamanagerとhibernate utilを使ってマップを使ってtopassを持っています

私はあなたが他の詳細は、私はあなたがそれを取得する必要がありますautowiredフィールドでBeanを取得するには、事前

+0

新しいインスタンスの作成をすべて削除します。自分自身(サービス、マネージャ、ユーティリティのインスタンス)を作成しているので、春にそれらを挿入できません。 –

+0

それはsessionFactory Autowiringに関連していますか? –

+0

おかげでそれは多くの問題のソートアウトを助ける –

答えて

0

感謝を知らせたい場合ので、私は間違っている。この問題を解決するために私を助けてください春に全く新しいですアプリケーションコンテキストから、例えばそれをオートワイヤリングする。 Springはちょうど "新しいMyobject()"を使ってあなた自身が作成したオブジェクトをあなたに注入するのは魔法ではありません

+0

私は私のHibernateUtilに何が間違っているので、私のコントローラでそれを得る –

+0

何もHibernateUtilに間違っています。何が問題なのですか? –

+0

私は感謝のバディを得ました –