JAVA语言之ssh整合之七注解结合xml形式
小标 2018-07-19 来源 : 阅读 660 评论 0

摘要:本文主要向大家介绍了JAVA语言的ssh整合之七注解结合xml形式,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

本文主要向大家介绍了JAVA语言的ssh整合之七注解结合xml形式,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

 1.我们之前的纯xml的方式,我们的配置文件很多,我们可以使用注解结合xml的方式进行开发,这样的话,我们的配置文件,会少很多,同时,我们可以直接在类中看到配置,这样,我们就可以快速地搭建一个ssh整合的项目了

  首先,我们应该考虑:我们的哪些东西需要我们用注解形式进行替换?

  第一个:hibernate中的关系映射文件,我们可以使用jpa结合hibernate注解进行替换

  第二个:spring中,我们的自定义的对象,我们可以使用我们的spring中ioc和tx的注解进行替换

  第三个:我们的struts.xml可以使用struts的注解替换 

  这个是我们的一个大体上的思路,现在我们就去实现它!

  我们的 实体类Customer

 

package com.itheima.entity;

 

import javax.persistence.Column;

import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import javax.persistence.GenerationType;

import javax.persistence.Id;

import javax.persistence.Table;

@Entity

@Table(name="cst_customer")public class Customer {

    @Id

    @GeneratedValue(strategy=GenerationType.IDENTITY)

    @Column(name="cust_id")

    private Long custId;  //客户编号

    @Column(name="cust_name")

    private String custName; //客户名称

    @Column(name="cust_source")

    private String custSource; //客户信息来源

    @Column(name="cust_industry")

    private String custIndustry; //客户所属行业

    @Column(name="cust_level")

    private String custLevel;  //客户级别

    @Column(name="cust_address")

    private String custAddress; //客户联系地址

    @Column(name="cust_phone")

    private String custPhone; //客户联系电话

    public Long getCustId() {

        return custId;

    }

    public void setCustId(Long custId) {

        this.custId = custId;

    }

    public String getCustName() {

        return custName;

    }

    public void setCustName(String custName) {

        this.custName = custName;

    }

    public String getCustSource() {

        return custSource;

    }

    public void setCustSource(String custSource) {

        this.custSource = custSource;

    }

    public String getCustIndustry() {

        return custIndustry;

    }

    public void setCustIndustry(String custIndustry) {

        this.custIndustry = custIndustry;

    }

    public String getCustLevel() {

        return custLevel;

    }

    public void setCustLevel(String custLevel) {

        this.custLevel = custLevel;

    }

    public String getCustAddress() {

        return custAddress;

    }

    public void setCustAddress(String custAddress) {

        this.custAddress = custAddress;

    }

    public String getCustPhone() {

        return custPhone;

    }

    public void setCustPhone(String custPhone) {

        this.custPhone = custPhone;

    }

    @Override

    public String toString() {

        return "Customer [custId=" + custId + ", custName=" + custName + ", custSource=" + custSource

                + ", custIndustry=" + custIndustry + ", custLevel=" + custLevel + ", custAddress=" + custAddress

                + ", custPhone=" + custPhone + "]";

    }

}

 

  我们的applicationContext.xml文件

 

<?xml version="1.0" encoding="UTF-8"?>

<!-- spring的配置文件:导入约束 -->

<beans xmlns="//www.springframework.org/schema/beans"

    xmlns:xsi="//www.w3.org/2001/XMLSchema-instance"

    xmlns:context="//www.springframework.org/schema/context"

    xmlns:aop="//www.springframework.org/schema/aop"

    xmlns:tx="//www.springframework.org/schema/tx"

    xsi:schemaLocation="        //www.springframework.org/schema/beans

        //www.springframework.org/schema/beans/spring-beans.xsd

        //www.springframework.org/schema/context

        //www.springframework.org/schema/context/spring-context.xsd

        //www.springframework.org/schema/aop

        //www.springframework.org/schema/aop/spring-aop.xsd

        //www.springframework.org/schema/tx

        //www.springframework.org/schema/tx/spring-tx.xsd

        ">

     

    <!-- 自定义的java对象交给spring进行管理,我们使用注解的形式替换-->

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

   <tx:annotation-driven/>

   <!--  第三方的jar包中的java对象交给spring进行管理 -->

   <!--  创建一个hibernateTemplate对象 -->

   <bean id="hibernateTemplate" class="org.springframework.orm.hibernate5.HibernateTemplate">

         <!-- 注入sessionFactory -->

         <property name="sessionFactory" ref="sessionFactory"></property>

   </bean>

   <!-- 创建sessionFactory对象 -->

   <bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">

           <!-- 配置数据库连接池 -->

           <property name="dataSource" ref="dataSource"></property>

           <!-- hibernate的配置文件 -->

           <property name="hibernateProperties">

               <props>

                   <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>

                   <prop key="hibernate.hbm2ddl.auto">update</prop>

                   <prop key="hibernate.show_sql">true</prop>

                   <prop key="hibernate.format_sql">true</prop>

               </props>

           </property>

           <!-- 指定要扫描的包

               packagesToScan 在加载配置文件的时候,自动扫描包中的java类

           -->

        <property name="packagesToScan" value="com.itheima.entity"></property>           

   </bean>  

   <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">

           <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>

           <property name="url" value="jdbc:mysql:///ssh_280"></property>

           <property name="username" value="root"></property>

           <property name="password" value="root"></property>

   </bean>

   <!--配置hibernate的事务管理 -->

   <bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">

           <property name="sessionFactory" ref="sessionFactory"></property>

   </bean>

</beans>

 

  我们的CustomerAction

 

package com.itheima.action;

import java.util.List;

import org.apache.struts2.convention.annotation.Action;import org.apache.struts2.convention.annotation.Namespace;import org.apache.struts2.convention.annotation.ParentPackage;import org.apache.struts2.convention.annotation.Result;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.context.annotation.Scope;import org.springframework.stereotype.Controller;

import com.itheima.entity.Customer;import com.itheima.service.CustomerService;import com.opensymphony.xwork2.ActionSupport;import com.opensymphony.xwork2.ModelDriven;

@Controller

@ParentPackage("struts-default")

@Namespace("/customer")

@Scope("prototype")public class CustomerAction extends ActionSupport implements ModelDriven<Customer> {

    private Customer customer = new Customer();

    @Autowired

    private CustomerService customerService;

    

    private List<Customer> customers;

    

    public void setCustomers(List<Customer> customers) {

        this.customers = customers;

    }

    

    public List<Customer> getCustomers() {

        return customers;

    }

 

    public Customer getModel() {

        return customer;

    }

    //进入添加页面

    @Action(value="addCustomerUI",results={@Result(name="success",location="/jsp/customer/add.jsp")})

    public String addCustomerUI(){

        return this.SUCCESS;

    }

    //进入列表页面

    @Action(value="getAllCustomer",results={@Result(name="success",location="/jsp/customer/list.jsp")})

    public String getAllCustomer(){

        customers = customerService.getAllCustomer();

        return this.SUCCESS;

    }

}

 

  我们的CustomerServiceImpl

 

package com.itheima.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import org.springframework.transaction.annotation.Propagation;import org.springframework.transaction.annotation.Transactional;

import com.itheima.dao.CustomerDao;import com.itheima.entity.Customer;import com.itheima.service.CustomerService;@Service

@Transactionalpublic class CustomerServiceImpl implements CustomerService{

    @Autowired

    private CustomerDao customerDao;

    

    public void addCustomer(Customer customer) {

        customerDao.save(customer);

    }

    @Transactional(propagation=Propagation.SUPPORTS,readOnly=true)

    public List<Customer> getAllCustomer() {

        return customerDao.find();

    }

}

 

  我们的CustomerDaoImpl

 

package com.itheima.dao.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;import org.springframework.orm.hibernate5.HibernateTemplate;import org.springframework.stereotype.Repository;

import com.itheima.dao.CustomerDao;import com.itheima.entity.Customer;@Repositorypublic class CustomerDaoImpl implements CustomerDao {

    @Autowired

    private HibernateTemplate hibernateTemplate;

    

    public void save(Customer customer) {

        hibernateTemplate.save(customer);

    }

 

    public List<Customer> find() {

        return (List<Customer>) hibernateTemplate.find("from Customer");

    }

}

  这样的话,我们的注解结合xml的形式就可以了,下次我们把这个项目改成maven项目

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注编程语言JAVA频道!


本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程