SSM整合Dubbo案例

一、Consumer子类

MyController类

@Controller
@RequestMapping("/login")
public class MyController {
    @Resource
    private UserService userService;
    @RequestMapping("/checkLogin")
    public String checkLogin(Users users){
        Users users1 = userService.checkLogin(users);
        if (users1==null) {
            return "login";
        }
        return  "index";
    }
}

applicationContext.xml

<mvc:annotation-driven/>
    <context:annotation-config/>
    <!-- 配置视图解析器,设置前缀和后缀,自动拼接 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <!-- 前缀 -->
        <property name="prefix" value="/jsp/" />
        <!-- 后缀 -->
        <property name="suffix" value=".jsp" />
    </bean>

    <mvc:default-servlet-handler/>
    <!-- 提供方应用信息,用于计算依赖关系 -->
    <dubbo:application name="consumer"/>

    <!-- 使用zookeeper注册中心暴露服务地址 -->
    <dubbo:registry address="192.168.118.3:2181,192.168.118.4:2181,192.168.118.5:2181"   protocol="zookeeper" />

    <!-- 用dubbo协议在20880端口暴露服务 -->
    <dubbo:protocol name="dubbo" port="20880" />

    <!-- 生成远程服务代理,可以和本地bean一样使用demoService -->
    <dubbo:reference id="userService" interface="com.yjc.service.UserService" />

index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<h1>登录成功,NB!</h1>
</body>
</html>

login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8" isELIgnored="false" %>
<!DOCTYPE html>
<form action="/login/checkLogin" method="post">
    <div>
        <input type="text" class="form-control" name="userName" placeholder="请输入用户名" required="" />
    </div>
    <div>
        <input type="password" class="form-control" name="password" placeholder="请输入密码" required="" />
    </div>
    <div>
        <button type="submit" class="btn btn-success">登     录</button>
        <button type="reset" class="btn btn-default">重 填</button>
    </div>

</form>

web.xml

  <!--Spring和MyBatis整合的核心配置-->
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml</param-value>
  </context-param>
  <!--配置SpringMVC的核心控制器DispatcherServlet-->
  <servlet>
    <servlet-name>SpringMVC</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath*:applicationContext.xml</param-value>
    </init-param>
  </servlet>


  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>


  <servlet-mapping>
    <servlet-name>SpringMVC</servlet-name>
    <!--设置映射路径,/代表所有的请求都会被核心控制器映射到对应的Controller中-->
    <url-pattern>/</url-pattern>
  </servlet-mapping>

  <!--编码过滤器-->
  <filter>
    <filter-name>characterEncodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <!--初始化参数-->
    <init-param>
      <param-name>encoding</param-name>
      <param-value>UTF-8</param-value>
    </init-param>
  </filter>

二、Producers子类

dao层Login类

@Repository
public interface Login {
    @Select("select * from myuser where username=#{userName}")
    Users checkLogin(String userName);
}

impl层UserServiceImpl类

@Service("userService")
public class UserServiceImpl implements UserService {
    @Resource
    private Login login;
    @Override
    public Users checkLogin(Users users) {
        Users users1 = login.checkLogin(users.getUserName());
        if (users1!=null){
            if (users1.getPassword().equals(users.getPassword())){
                return  users1;
            }
        }
        return null;
    }
}

applicationContext.xml

<!--    导入数据库连接文件-->
    <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="ignoreUnresolvablePlaceholders" value="true" />
        <property name="location" value="classpath:jdbc.properties"/>
    </bean>
    <!--配置数据源-->
    <bean  id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="${jdbc.driver}"/>
        <property name="url" value="${jdbc.url}"/>
        <property name="password" value="${jdbc.password}"/>
        <property name="username" value="${jdbc.user}"/>
    </bean>

    <!--配置MyBatis的核心对象SqlSessionFactoryBean-->
    <bean id="SessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
    </bean>
    <!--创建包扫描器(借助dao接口实现动态代理)-->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer           ">
        <property name="basePackage" value="com.yjc.dao"/>
    </bean>
    <context:component-scan base-package="com.yjc"/>
    <context:annotation-config/>
    <mvc:annotation-driven/>


    <!-- 提供方应用信息,用于计算依赖关系 -->
    <dubbo:application name="app-provider"/>

    <!-- 使用zookeeper注册中心暴露服务地址 -->
    <dubbo:registry address="192.168.118.3:2181,192.168.118.4:2181,192.168.118.5:2181"   protocol="zookeeper" />

    <!-- 用dubbo协议在20880端口暴露服务 -->
    <dubbo:protocol name="dubbo" port="20880" />

    <!-- 声明需要暴露的服务接口 -->
    <dubbo:service interface="com.yjc.service.UserService" ref="userService" />

三、Service子类

entity包下的Userl类

public class Users implements Serializable {
    private Integer id;
    private  String userName;
    private  String password;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    @Override
    public String toString() {
        return "Users{" +
                "id=" + id +
                ", userName='" + userName + '\'' +
                ", password='" + password + '\'' +
                '}';
    }
    public Users() {
    }
    public Users(Integer id, String userName, String password) {
        this.id = id;
        this.userName = userName;
        this.password = password;
    }
}

service包下的UserService

public interface UserService {
    Users checkLogin(Users users);
}

 

 

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             

posted @ 2019-12-02 15:26  慕容子月  阅读(356)  评论(0编辑  收藏  举报