整个SSM框架的核心功能就是为了一个————“解耦”
其中Mybatis处于核心的地位,相对于Mybatis,spring和springmvc等其他优化都是可有可无的。
(学了springboot回过头来看,感觉到除了解耦,整个框架大大简化了开发,这也算是核心功能了)
黑马程序员的视频教程真的不错,推荐一下:
【黑马程序员SSM框架教程_Spring+SpringMVC+Maven高级+SpringBoot+MyBatisPlus企业实用开发技术】
一。Maven
maven主要就是建一个maven工程。编辑pom.xml。写好以后,eclipse里面应该自动会下载,idea需要点一下刷新。
idea写pom的体验还不错,eclipse好像也会自动填写。另外就是虽然会自动填写,但是有时候最新的库还是要网上搜索以后手动填写的。比如java=》jakarta这种。还有各种最新的version。
二。Mybatis
pom两个库
resources里面配两个xml
1.mybatis-config.xml
2.映射文件
3.一个mapper
4.一个POJO。POJO的get、set、tostring都可以自动生成。
然后是main里面
String configPath = "mybatis-config.xml";
加载配置
in = Resources.getResourceAsStream(configPath);SqlSessionFactory factoryTmp = new SqlSessionFactoryBuilder().build(in);SqlSession sqlSession = factoryTmp.openSession(true);//设为自动commit
//===========
中间写业务
//===========
sqlSession.close();
三。SpringIOC/DI
Spring的基础功能。控制反转、依赖注入。主要就是为了解耦。不用在代码里面new对象了。依赖也通过get、set的方式交给spring来处理。
一般使用纯注解方式
@Configuration
@ComponentScan({"com.threadLearn.ShouHu"})
@PropertySource({"iocConfig"})
public class SpringConfig {}
四。SpringAOP
在springConfig中添加注解
@EnableAspectJAutoProxy(proxyTargetClass = true)
如果有类作为成员变量一定要加
proxyTargetClass = true
添加扫描
@ComponentScan({"com.threadLearn.ShouHu","shujianaop.aop" })
添加被扫描的文件。几个注解,Aspect,Pointcut,Around一定要加上
@Pointcut("execution(* com.threadLearn.ShouHu.*.*(..))")
*标识任意字段名,..标识任意参数个数、长度
// 匹配public方法
execution(public * *(..))
// 匹配名称以set开头的方法
execution(* set*(..))
// 匹配AccountService接口或类的方法
execution(* com.xyz.service.AccountService.*(..))
// 匹配service包及其子包的类或接口
execution(* com.xyz.service..*(..))
https://zhuanlan.zhihu.com/p/513920894
execution(public * *(..))
1
匹配所有目标类的public方法,第一个代表方法返回值类型,第二个代表方法名,而"…"代表任意入参的方法;
execution(* *To(..))
1
匹配目标类所有以To为后缀的方法。第一个“*”代表任意方法返回类型,而“*To”代表任意以To结尾的方法名。
* joke(String, *)
1
匹配目标类中joke()方法,该方法第一个入参为String类型,第二个入参可以是任意类型
execution(* joke(String, int))
1
匹配类中的joke()方法,且第一个入参为String类型,第二个入参 为int类型
execution(* joke(String, ..))
1
匹配目标类中joke()方法,该方法第一个入参为String,后面可以有任意个且类型不限的参数
————————————————
版权声明:本文为CSDN博主「张同学最帅」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_49930191/article/details/108360340
五。SpringMVC
springMVC是没有main函数的。需要放到web容器中运行。例如JBOSS,Tomcat等。一般自学就用tomcat。tomcat是一个servlet容器。springMVC也是在servlet的基础上实现的。程序编写好以后需要打包成war包,然后放到tomcat的webapps目录下。之后重启tomcat来并通过访问正确的url来运行。这一点和servlet的发布是一样的。
pom.xml里面需要加上这行
<packaging>war</packaging>
一般web项目会有一个web.xml文件。我们可以通过配置该文件实现springMVC的功能。但是也可以使用纯注解的方式,一般会选择纯注解,便于快速开发。纯注解的话,可以删除web.xml。
需要两个Config
1.一个就是普通的springConfig
2.另一个是MVC的
@Overrideprotected String[] getServletMappings() { return new String[]{"/"};}
函数中这样写就是servlet收到的请求全部交由MVC处理
3.一个controller
@Component或者@Controller都可以,一般用Controller
@RequestMapping这里,可以直接/save,这样url就是 ip:端口/save来访问。如果是/mvc/save则必须是ip:端口/mvc/save来访问。
(url中不加“/”,框架会自动补上,有时候在代码中看到没有加的,要知道其实是有斜杆的。)
@ResponseBody这里可以直接返回类对象,springMVC会自动转化成json格式。
暂无关于此日志的评论。