Java
未读
Spring IOC、DI
这是一篇关于IOC和DI的文章,介绍了Spring框架中的控制反转(IoC)和依赖注入(DI)概念。在传统开发中,A类需要主动创建B类的对象,而Spring通过IoC将对象的创建和管理交给Spring容器,避免了硬编码耦合。DI是Spring实现IoC的方式之一,它通过setter或构造器注入将B对象传递给A类,实现依赖关系的解耦。IOC和DI相互关联,DI依赖于IoC来完成。Spring中的IoC操作包括通过XML配置和注解两种方式来管理Bean,常见注解有@Component、@Service、@Repository和@Controller等。此外,Spring提供了@Value、@Autowired、@Qualifier和@Resource等注解进行依赖注入,支持自动装配和按名称或类型装配,生命周期管理可通过@PostConstruct和@PreDestroy注解来完成,Bean的作用域可以通过@Scope注解来定义。
Java
未读
Spring AOP
这是一篇关于AOP(面向切面编程)的文章,介绍了AOP的基本概念、通知类型和应用场景。AOP通过预编译和动态代理实现统一的程序功能管理。主要概念包括切面(Aspect)、连接点(JointPoint)、通知(Advice)、切入点(Pointcut)和AOP代理。Spring AOP通过JDK动态代理和CGLIB代理生成代理对象,并结合IOC容器管理。AOP的通知类型有Before、AfterReturning、AfterThrowing、After、Around等,执行顺序为Around -> Before -> After -> AfterReturning。AOP的应用场景包括日志、权限控制、事务管理、缓存等。Spring AOP基于注解实现“零配置”,通过@Aspect和@Component等注解定义切面及通知方法。
Java
未读
Java IO
这篇文章介绍了Java中IO流的基本概念和分类。IO流用于处理数据传输,包括文件上传和下载,主要分为字节流和字符流。字节流包括InputStream和OutputStream类及其子类FileInputStream和FileOutputStream,用于读取和写入字节数据。字节缓冲流BufferedInputStream和BufferedOutputStream提高了数据处理效率。字符流则包括Reader和Writer类,字符流的转换流如InputStreamReader和OutputStreamWriter用于字节流与字符流之间的转换。字符缓冲流BufferedReader和BufferedWriter进一步提升了性能。最后,通过示例对比了不同读取方式的效率,字节流和缓冲流在文件读取和写入中的性能差异。
Java
未读
Java注解
这是一篇关于Java元注解和Spring注解的文章,介绍了不同类型的注解及其应用。Java元注解包括@Retention,用于定义注解的生命周期,SOURCE、CLASS、RUNTIME分别用于不同的注解保留策略。Spring相关注解涵盖了Bean声明、注入、配置类、切面编程、环境切换、异步任务、定时任务等多种功能。注解如@Component、@Service、@Repository等用于不同层级的Bean声明,@Autowired、@Inject、@Resource用于依赖注入,@Configuration和@Bean用于Java配置类的声明。文章还介绍了AOP相关注解,Bean作用域的配置,@Value注解的属性注入方法以及测试相关注解如@RunWith和@ContextConfiguration。通过这些注解,Spring实现了灵活的配置和功能扩展。