目录
Spring-01-初识Spring_哔哩哔哩_bilibili
Ioc—Inversion of Control
一种思想。 创建对象、管理对象
一般对象都是直接通过new出来 ,交由IoC管理后,IoC容器来控制对象的创建
配置实在是多
pom.xml
- <dependency>
- <groupId>org.springframeworkgroupId>
- <artifactId>spring-contextartifactId>
- <version>5.3.23version>
- dependency>
applicationContext.xml
-
- <bean id="bookDao" class="com.beink.dao.Impl.bookDaoImpl"/>
- <bean id="bookService" class="com.beink.service.Impl.bookServiceImpl"/>
Main.java
- public class Main {
- public static void main(String[] args) {
- // 3.获取容器
- ApplicationContext atx = new ClassPathXmlApplicationContext("applicationContext.xml");
- // 4. 获取bean
- bookDao bookDao = (bookDao) atx.getBean("bookDao");
- bookDao.save();
- // 等同于
- bookDao bookDao1 = new bookDaoImpl();
- bookDao1.save();
- }
- }
被构造 调用的是无参构造
生命周期:
public void init(){ System.out.println("init"); } public void destory(){ System.out.println("destory"); } 配置或者 直接 implements InitializingBean, DisposableBean 同样效果
- .xml
"bookDao" class="com.beink.dao.Impl.bookDaoImpl"> -
"a" value="123"/> -
"s" value="true"/> -
- Impl.java
- private String s;
- private int a;
- <bean id="bookDao" class="com.beink.dao.Impl.bookDaoImpl">
- <constructor-arg name="a" value="6"/>
- <constructor-arg name="s" value="true"/>
- bean>
- <bean id="bookService" class="com.beink.service.Impl.bookServiceImpl">
- <constructor-arg name="bookdao" ref="bookDao"/>
- bean>
依赖注入
- private bookDao book_dao;
-
- public void setBookdao(bookDao bookdao){
- this.book_dao = bookdao;
- }
一般 注入
- private String s;
- private int a;
-
- public bookDaoImpl(String s, int a) {
- this.s = s;
- this.a = a;
- }
- <bean id="bookDao" class="com.beink.dao.Impl.bookDaoImpl">
- <property name="list">
- <array>
- <value>hello value>
- <value>worldvalue>
- array>
- property>
- <property name="map">
- <map>
- <entry key="hello" value="world">entry>
- map>
- property>
- bean>
@Component("名字") 定义Bean
---@Service
---@Controller(同样效果 只是便于理解)
---@Repository
@Configuration 设置位配置类 类似于applicationContext.xml @ComponentScan("com.beink") 扫描路径 自动装配到spring的bean @Scope("singleton") 单例 @PostConstruct 生命周期-初始化 @PreDestroy 生命周期-销毁 @Autowired 自动装配 === private bookDao bookdao = new bookDaoImpl(); @Value("${name}") 简单类型注入 private String s; @PropertySource("xxx.yml") 数据源 内容--(name=hello world)
不改变原始设计 将功能增强
- @Component
- @Aspect
- //这是个aop
- public class MyAop {
- // 在哪里执行
- @Pointcut("execution(void com.beink.dao.bookDao.save())")
- private void ss(){}
-
- // 绑定
- @AfterReturning("ss()")
- public void set(){
- System.out.println("AOP");
- }
- }
使用*通配符即可
@Pointcut("execution( * * com.beink.dao.*)")
- public class MyAop {
- @Pointcut("execution(void com.beink.dao.bookDao.save())")
- private void ss(){}
-
- @AfterReturning("ss()")
- public void set(){
- System.out.println("AOP");
- }
- // 环绕
- @Around("ss()")
- public void round(ProceedingJoinPoint e) throws Throwable {
- System.out.println("qian");
- e.proceed();/*调用原始操作*/
- System.out.println("hou");
- // 如果有返回值 返回对象必须是Object
- }
-
- // @AfterReturning
- // @AfterThrowing
- }
- public class MyAop {
- @Pointcut("execution(void com.beink.dao.bookDao.save(..))")
- private void ss(){}
-
- // 环绕
- @Around("ss()")
- public Object round(ProceedingJoinPoint e) throws Throwable {
-
- Object[] args = e.getArgs();
- e.proceed();/*调用原始操作*/
- System.out.println(Arrays.toString(args));/*获取参数*/
- // 修改参数
- args[0] = 666;
- Object ret = e.proceed(args);
-
- return ret;
- }
-
- }
SpringMVC-02-SpringMVC入门案例_哔哩哔哩_bilibili
pom.xml
- <dependencies>
- <dependency>
- <groupId>javax.servletgroupId>
- <artifactId>javax.servlet-apiartifactId>
- <version>4.0.1version>
- <scope>providedscope>
- dependency>
- <dependency>
- <groupId>org.springframeworkgroupId>
- <artifactId>spring-webmvcartifactId>
- <version>5.3.23version>
- dependency>
- dependencies>
userControler类
- @Controller
- //定义Bean
- public class userController {
-
- // 访问路径
- @RequestMapping("/save")
- // 返回值类型
- @ResponseBody
- public String save(){
- System.out.println("hhh");
- return "hello world";
- }
-
- }
config类
- servletinitConfig.java
-
- //定义一个servlet启动配置,在里面加载spring配置
- public class servletinitConfig extends AbstractDispatcherServletInitializer {
-
- // 加载springMVC配置
- @Override
- protected WebApplicationContext createServletApplicationContext() {
- AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
- ctx.register(springMVCConfig.class);
-
-
- return ctx;
- }
- //设置那些请求归springMVC处理
- @Override
- protected String[] getServletMappings() {
- return new String[]{"/"};
- }
- //加载spring配置
- @Override
- protected WebApplicationContext createRootApplicationContext() {
- return null;
- }
- }
-
-
- springMVCConfig.java
-
- //加载对应的Bean
- @ComponentScan("com.beink.controller")
- //加载配置
- @Configuration
- public class springMVCConfig {
- }
-
-
配置Tomcat启动即可。。
/save?name=name
- @RequestMapping("/save")
- @ResponseBody
- public String save(String name){
- System.out.println(name);
- return "hello world";
- }

- @RequestMapping("/save")
- @ResponseBody
- public String save(String name,String id){
- System.out.println(name + id);
- return "hello world";
- }

SpringMVC-09-json数据传递参数_哔哩哔哩_bilibili
- @ResponseBody
- public String save(@RequestParam("name") String userName, String id){
- // 一: 会把地址中的name映射给userName
- // 二: save(User user) 当名字一样使 会自动把属性放进去
- // 三:Map List.....@RequestParam List
- // 四:JSON
- // 五:时间
- // 六:。。。
- System.out.println(userName + id);
- return "hello world";
- }
- @RequestMapping("topage")
- public String toapage(){
- // 跳转到index.jsp页面
- return "index.jsp";
- }
-
- @RequestMapping("ttt")
- @ResponseBody
- public String toattpage(){
- // 返回一个串“index.jsp”
- return "index.jsp";
- }
访问形式: /put/5 /get/6
SpringMVC-14-RESTful快速开发_哔哩哔哩_bilibili
- @RequestMapping(value = "/put/{id}",method = RequestMethod.PUT)
- @ResponseBody
- public void put(@PathVariable String id){
- System.out.println(id);
-
- }
-
-
- @RequestMapping(value = "/get/{id}",method = RequestMethod.GET)
- @ResponseBody
- public void get(@PathVariable String id){
- System.out.println(id);
-
- }
-
- POST DELETE ....
@Controller //定义Bean
@RequestMapping("/save") // 访问路径
@ResponseBody //返回值
@RequestParam //用于接收url地址参数 /get?id=5
@ResponseBody //用于接收JSON数据
@PathVariable //接受url地址参数 /get/
@RestController //= @Controller + @ResponseBody
@GetMapping("/get/{id}") // == @RequestMapping(value = "/get/{id}",method = RequestMethod.GET)
.....
【尚硅谷】2022版MyBatisPlus教程(一套玩转mybatis-plus)_哔哩哔哩_bilibili
-
- @Test
- void TestInsert(){
- user user = new user();
- user.setId(880);
- user.setAccount("天天学习");
- user.setPassword("hhh");
-
- int res = UserMapper.insert(user);
- System.out.println(res);
- }
-
- @Test
- void TestDelete(){
- // 一:
- // int res = UserMapper.deleteById(1);
- // System.out.println(res);
-
- // 二:
- // delete from user where account = ? and password = ?
- // HashMap
map = new HashMap<>(); - // map.put("account","jkl");
- // map.put("password","123root");
- // UserMapper.deleteByMap(map);
-
- // 三:
- // 删除多个
- // DELETE FROM user WHERE id IN ( ? , ? )
- List
list = Arrays.asList(80,880); - UserMapper.deleteBatchIds(list);
- }
- @Test
- void TestUpdata(){
- user user = new user();
- user.setAccount("改了");
- UpdateWrapper
q = new UpdateWrapper<>(); - q.eq("password","666");
- // 不屑password 不被修改
- UserMapper.update(user,q);
- }
-
-
- @Test
- void TestSelect(){
- // 通过id查询信息
- // user user = UserMapper.selectById(2);
- // System.out.println(user.toString().isEmpty());
-
- // 通过多个id进行查询
- // List
list = Arrays.asList(3,2); - // List
users = UserMapper.selectBatchIds(list); - // users.forEach(System.out::println);
-
- // 通过map查询
- // HashMap
map = new HashMap<>(); - // map.put("account",666);
- // List
users = UserMapper.selectByMap(map); - // users.forEach(System.out::println);
-
- // 所有的数据
- // List
users = UserMapper.selectList(null); - // users.forEach(System.out::println);
-
- }

@TableName 表名
@TableId 主键
---@TableId(type= IdType.AUTO) 自增
---@TableId(type= IdType.NONE) 雪花算法 赋值
@TableField 把表中字段和实体类对应
---@TableField(value="name") 映射
---@TableField(exist=false) 不是数据库中字段
---@TableField(select = false) 不会参与查询 返回值为null