SSM开发(航空管理系统)

项目准备
1.新建一个项目Dynamic Web Project(不要直接点击finish,点击两次Next,并勾选Generate XML)

2.导入素材中所给的Jar包

3.在项目生成的web.xml(在src/main/webapp/WEB-INF文件中),把素材中给的web.xml的代码粘贴过来

4.在src中新建applicationContext.xml和spring-mvc.xml(右键src->new->Orther->XML File)两个xml文件,
并将素材中所给同名文件的代码粘贴进去。

5.在src中新建包,有
edu.wtbu.dao:数据链路层,在SSM框架中只提供接口
edu.wtbu.pojo:类似于JavaBean,可以降低代码的冗余
edu.wtbu.service:业务层,处理数据逻辑
edu.wtbu.controller:类似于Servlet的作用
edu.wtbu.mapper:放sql语句的地方
五个包

配置文件
1.applicationContext.xml的配置
一个扫描,3个Bean
1个扫描:扫描edu.wtbu中的所有文件
3个bean:
第一个Bean:连接数据库的Driver(驱动),连接数据库和注册驱动方法和MySqlHelper基本一致
第二个Bean:是MyBatis的关键对象,它是单个数据库映射关系经过编译后的内存镜像。
Mybatis在与Spring集成的时候可以配置MapperFactoryBean来生成Mapper接口的代理。
MapperFactoryBean的出现为了代替手工使用SqlSessionDaoSupport或SqlSessionTemplate编写数据访问对象(DAO)的代码,使用动态代理实现
第三个Bean:MapperScannerConfigurer会查找类路径下的映射器并自动将它们创建成MapperFactoryBean

2.spring-mvc的配置
一个扫描和一个防报错
扫描:扫描controller包中的文件
防报错:mvc:annotation-driven会自动注册RequestMappingHandlerMapping与RequestMappingHandlerAdapter两个Bean,
这是Spring MVC为@Controller分发请求所必需的,并且提供了数据绑定支持,@NumberFormatannotation支持,@DateTimeFormat支持,@Valid支持读写XML的支持(JAXB)和读写JSON的支持(默认Jackson)等功能

(简:@Controller标记在一个类上还不能真正意义上说它就是SpringMVC的控制器,这个控制器交给Spring来管理)。

各接口实现(以获取城市为例)
1.获取城市

(这里的是以上个项目层级来分别,不是SSM中具体的层级)

1.1 数据链路层实现

1.1.1 先在edu.wtbu.dao这个包中new一个接口(interface)命名为CityDao,然后在这个接口中给出getCityNames();这个抽象方法(接口中默认是abstract方法);

1.1.2 在edu.wtbu.mapper这个包中new一个XML File,命名为CityMapper,该xml文件是放置sql语句的;

1.2 业务层实现

1.2.1 在edu.wtbu.pojo这个包中new一个Result类(减少重复使用时的代码),city接口只涉及到String flag和Object data两个变量,并在找到Source,点开后分别点击Generated constructors from superclass(父类的无参构造方法),Generated constructors using Fields(父类的有参构造方法),Generated Getters and Setters(get和set存值、取值方法)生成对应的方法;

1.2.2 在edu.wtbu.service这个包中new一个接口(interface)命名为CityService,里面放抽象方法getCityNames(类型为edu.wtbu.pojo包内的Result型);

1.2.3 在edu.wtbu.service这个包中new一个类,命名为CityServiceImpl(Impl改为全小写是impl,Impl是用于实现接口的),在inteface栏Add一个要实现的接口(CityService),这样类中自动给出要实现的方法体;

在类的上面一行添加注解@Service(如果一个类带了@Service注解,将自动注册到Spring容器,不需要再在applicationContext.xml文件定义bean了)

在@Override上面一行(类和方法体中间)添加一个@Resource注解,并将CityDao这个接口导入,方便后续具体业务实现时读取数据。

1.3 servlet层实现

1.3.1 在edu.wtbu.controller这个包中new一个类,命名为CityController;

给类添加一个注解@Controller(@Controller标识的类,该类代表控制器类(控制层/表现层));

在@Override上面一行(类和方法体中间)添加一个@Resource注解,并将CityService这个接口导入,方便后续具体业务实现时读取数据。

紧接着@RequestMapping(“/getCityNames”)😭@RequestMapping注解告知Spring这个类或者函数映射到哪个URL)

@ResponseBody(正常情况下,Controller类中函数返回是一个模板对象(页面),但是有时候我们希望返回值数值型(字符串或者Json格式数据),这时就需要添加@ResponseBody注解)

具体看深度学习中controller层解读

注:@RequestMapping(“/getCityNames”);要么放在@Resource下,要么放在类名之上(@Controller之下)

易错点:

1.在配置applicationContext.xml的时候,赋值时有value和ref两种方式;

区别:value是给一个具体的值或值的所在位置,ref是给一个对象。

具体:http://t.csdn.cn/Pa7s1

深度学习链接:

SSM框架:http://t.csdn.cn/Uesbq http://t.csdn.cn/rhcfD

注解:http://t.csdn.cn/LswPZ

controller层解读 http://t.csdn.cn/XUkLT

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个小白W

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值