天天看点

使用SSM框架搭建Web服务器实现登录功能(Spring+SpringMVC+Mybatis)使用SSM框架搭建Web服务器实现登录功能(Spring+SpringMVC+Mybatis)

database–>Entity.java–>mapper.xml–>Mapper.java–>Dao.java–>DaoImpl.java–>Service.java–>ServiceImpl.java–>Controller.java–>login.jsp

根据需要建立数据库、数据表、字段;

根据表中字段建立实体类;

在Mapper中实现对数据库的增删改查操作;

设计DAO(data access object)数据操作对象接口;

设计Service,通过DAO获取对象,然后进行业务逻辑实现;

设计控制层Controller,用于从页面获取请求,调用Service处理并将处理结果返回给页面。

根据上面所列,下面就按照这个流程进行设计。

使用MySQL数据库:

建立数据库 DB_TEST

建立用户表 T_USER

插入一条用户信息

UserMapper接口,定义通过用户名获取用户对象的方法

usermapper.xml,用于操作数据库,实现接口中的方法

DAO接口 UserDao.java

DAO接口实现 UserDaoImpl.java

@Repository对应数据访问层Bean @Repository(value=”userDao”)注解是告诉Spring,让Spring创建一个名字叫“userDao”的UserDaoImpl实例。 当Service需要使用Spring创建的名为“userDao”的UserDaoImpl实例时, 就可以使用@Resource(name =”userDao”)注解告诉Spring,Spring把创建好的userDao注入给Service即可。

业务层接口 UserService.java

业务层接口实现类 UserServiceImpl.java

@Service对应的是业务层Bean 这样当Action需要使用UserServiceImpl的的实例时,就可以由Spring创建好的”userService”注入给Action:在Action只需要声明一个名字叫“userService”的变量来接收由Spring注入的”userService”即可
@Controller对应表现层的Bean,也就是Action 注意:如果@Controller不指定其value【@Controller】,则默认的bean名字为这个类的类名首字母小写,如果指定value【@Controller(value=”UserAction”)】或者【@Controller(“UserAction”)】,则使用value作为bean的名字。
@Scope(“prototype”)表示将Action的范围声明为原型 可以利用容器的scope=”prototype”来保证每一个请求有一个单独的Action来处理,避免struts中Action的线程安全问题。 spring 默认scope 是单例模式(scope=”singleton”),这样只会创建一个Action对象,每次访问都是同一Action对象,数据不安全。 struts2 是要求每次次访问都对应不同的Action,scope=”prototype” 可以保证当有请求的时候都创建一个Action对象
@RequestMapping(“/user”) RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。
本项目中,该Controller类RequestMapping(”user”) 该Controller类的login方法RequestMapping(”login”) 所以登录页面中用户登录的 action=”/ssm/user/login”

这个文件是Spring公共配置文件,下面分块进行解析。

数据库配置文件database.properties的引入

数据库连接池的配置

数据库连接池可以让服务器预先与数据库建立部分连接,存入内存中,以减少连接数据库的耗时操作。 此处定义使用C3P0连接池的数据源。

自动扫描配置

使用< context:component-scan>标签后,spring可以自动去扫描base-pack下面或者子包下面的java文件,如果扫描到有@Component @Controller@Service等这些注解的类,则把这些类注册为bean

集成Mybatis

SqlSessionFactoryBean是一个工厂bean,它的作用就是解析配置(数据源、别名等)。

Mapper扫描配置

dao需要配置,如果数量大不适合一个个配置,需要使用mapper自动扫描来批量进行配置。

Mybatis事务管理配置

此处省略,入门阶段暂不考虑这么高端的日志用法。
通过使用别名,可以缩短类名的长度,但是只能在配置文件中使用。
此配置文件注释比较清楚,就不单独解析了。
之前扫描专门忽略了Controller,在此处扫描。 例如在Controller类中常有类似<code>return welcome</code>这样的语句 其实完整的应该是<code>return WEB-INF/pages/welcome.jsp</code>
上一篇: golang切片
下一篇: 切片