当前位置: 首页 > news >正文

Netty-Rest搭建笔记

0.相关知识

@Component、@Repository、@Service


@Repository
//@Scope设置bean的作用范围
@Scope("singleton")//单例  prototype每次创建都会给一个新实例。
public class BookDaoImpl implements BookDao {
//生命周期public void save() {System.out.println("book dao save ...");}//@PostConstruct设置bean的初始化方法@PostConstruct//在构造方法之前public void init() {System.out.println("init ...");}//@PreDestroy设置bean的销毁方法@PreDestroy//销毁之前public void destroy() {System.out.println("destroy ...");}}

Autowired使用暴力反射,无需Setter方法了。

Config类


@Configuration//一般只写一个 ,其他的用Import
@ComponentScan("com.itheima")
//@Import:导入其他config类的配置信息
@Import({JdbcConfig.class})
//@PropertySource加载properties配置文件
@PropertySource({"jdbc.properties"})
public class SpringConfig {
}

@Service
public class BookServiceImpl implements BookService {//@Autowired:注入引用类型,自动装配模式,默认按类型装配@Autowired//@Qualifier:自动装配bean时按bean名称装配@Qualifier("bookDao")private BookDao bookDao;public void save() {System.out.println("book service save ...");bookDao.save();}
}

1.整合tinylog 

1.新建tinylog.properties

writer       = console
writer.file  = log.txt
writer.level = info

2.使用

Logger.tag("SYSTEM").info("Hello World!"); // Output
Logger.info("Hello World!");               // Ignored

2.整合Mybatis、druid、Spring框架

        <dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.6</version></dependency><!-- 数据库驱动(以MySQL为例) --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.25</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>1.3.0</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.2.10.RELEASE</version></dependency>

1.新建jdbc.properties文件,配置mysql连接配置(需要使用@PropertySource扫描)

2.新建配置类SpringConfig、JdbcConfig、MybatisConfig

package org.leo.web.config;import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.context.annotation.PropertySource;@Configuration
@ComponentScan("org.leo.web")
//@PropertySource:加载类路径jdbc.properties文件
@PropertySource("classpath:jdbc.properties")
@Import({JdbcConfig.class,MybatisConfig.class})
public class SpringConfig {
}
package org.leo.web.config;import com.alibaba.druid.pool.DruidDataSource;import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;import javax.sql.DataSource;public class JdbcConfig {@Value("${jdbc.driver}")//使用@Value注入private String driver;@Value("${jdbc.url}")private String url;@Value("${jdbc.username}")private String userName;@Value("${jdbc.password}")private String password;@Bean//告诉Spring容器,管理这个对象public DataSource dataSource(){DruidDataSource ds = new DruidDataSource();ds.setDriverClassName(driver);ds.setUrl(url);ds.setUsername(userName);ds.setPassword(password);return ds;}
}
package org.leo.web.config;import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.mapper.MapperScannerConfigurer;
import org.springframework.context.annotation.Bean;import javax.sql.DataSource;public class MybatisConfig {//定义bean,SqlSessionFactoryBean,用于产生SqlSessionFactory对象@Beanpublic SqlSessionFactoryBean sqlSessionFactory(DataSource dataSource){SqlSessionFactoryBean ssfb = new SqlSessionFactoryBean();ssfb.setTypeAliasesPackage("com.itheima.domain");ssfb.setDataSource(dataSource);return ssfb;}//定义bean,返回MapperScannerConfigurer对象@Beanpublic MapperScannerConfigurer mapperScannerConfigurer(){MapperScannerConfigurer msc = new MapperScannerConfigurer();msc.setBasePackage("com.itheima.dao");return msc;}
}

http://www.dtcms.com/a/321178.html

相关文章:

  • 微算法科技(NASDAQ:MLGO)使用循环QSC和QKD的量子区块链架构,提高交易安全性和透明度
  • 降低程序运行时CPU和GPU峰值占用的技术方案
  • 基于深度学习的鸟类检测识别系统(yolo11、yolov8、yolov5+UI界面+Python项目源码+模型+标注好的数据集)
  • ROHM推出适用于Zone-ECU的高性能智能高边开关!
  • 【unitrix数间混合计算】2.3 标准化处理系统(src/number/normalize/mod.rs)
  • Alkimi 与 Sui 合作,修复「破碎」的广告生态
  • HarmonyOS多设备资源文件管理以及resources资源引用方式
  • 交换机100G模块远距离连接踩坑记录
  • 强制用户更改WordPress密码的重要性及实现方法
  • Pinterest视觉营销自动化:亚矩阵云手机实例与多分辨率适配技术
  • 在 Elasticsearch/Kibana (ELK Stack) 中搜索包含竖线 (|)​​ 这类特殊字符的日志消息 (msg 字段) ​确实需要转义
  • proteus实现简易DS18B20温度计(stm32)
  • python学智能算法(三十五)|SVM-软边界拉格朗日方程乘子非负性理解
  • 阿里云服务linux安装单机版
  • Java 之 设计模式
  • Scratch编程:枪战游戏(附源码)
  • C++信息学奥赛一本通-第一部分-基础一-第3章-第1节
  • 【深度学习新浪潮】近三年高精度大规模三维实景重建研究进展(2022-2025)
  • Java零散知识点
  • Webpack 核心配置与最佳实践指南
  • cAdvisor 容器监控软件学习
  • 移动端app专项测试
  • 园区应急调度系统的核心功能
  • 塔罗耳语:免费在线AI塔罗牌占卜工具
  • 1-10〔 OSCP ◈ 研记 〕❘ 信息收集▸主动采集H:SNMP基础
  • WinForm利用 RichTextBox组件实现输出各种颜色字体日志信息
  • MMBFJ310LT1G一款N沟道JFE 晶体管适用于高频放大器和振荡器等射频应用MMBFJ310LT1
  • STM32CubeMX(十二)SPI驱动W25Qxx(Flash)
  • VUE+SPRINGBOOT从0-1打造前后端-前后台系统-视频列表与视频播放
  • 【嵌入式C语言】