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

网站建设及推广好做吗瓯海网站建设

网站建设及推广好做吗,瓯海网站建设,手机端h5网站模板下载,济南协会网站设计团队文章目录 1.基本使用1.基本介绍2.快速入门1.引入jar包2.MyComponent.java3.UserAction.java3.UserDao.java4.UserService.java5.beans05.xml6.断点查看bean对象是否创建7.测试 3.注意事项和细节 2.自己实现spring注解1.需求分析2.思路分析图3.编写自定义注解ComponentScan4.编写… 文章目录 1.基本使用1.基本介绍2.快速入门1.引入jar包2.MyComponent.java3.UserAction.java3.UserDao.java4.UserService.java5.beans05.xml6.断点查看bean对象是否创建7.测试 3.注意事项和细节 2.自己实现spring注解1.需求分析2.思路分析图3.编写自定义注解ComponentScan4.编写配置类SunSpringConfig5.编写容器SunSpringApplicationContext6.测试 3.自动装配1.AutoWired方式1.基本说明2.UserDao.java3.UserService.java4.测试 2.Resource方式推荐1.基本说明2.UserDao.java3.UserService.java 4.泛型依赖注入1.基本说明1.基本介绍2.参考关系图 1.基本使用 1.基本介绍 2.快速入门 1.引入jar包 2.MyComponent.java package com.sxs.spring.component;import org.springframework.stereotype.Component;/*** Component 标识该类是一个组件当不确定该类的层级的时候就使用这个注解* author 孙显圣* version 1.0*/Component public class MyComponent { } 3.UserAction.java package com.sxs.spring.component;import org.springframework.stereotype.Controller;/*** Controller 用于标识该类是一个控制器相当于servlet* author 孙显圣* version 1.0*/ Controller public class UserAction { } 3.UserDao.java package com.sxs.spring.component;import org.springframework.stereotype.Repository;/*** Repository 用来标识该类是一个dao* author 孙显圣* version 1.0*/ Repository public class UserDao { } 4.UserService.java package com.sxs.spring.component;import org.springframework.stereotype.Service;/*** Service 用于标识该类是一个Service* author 孙显圣* version 1.0*/ Service public class UserService { } 5.beans05.xml ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:contexthttp://www.springframework.org/schema/contextxsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd!--component-scan 表示对指定包下的类进行扫描并创建对象到容器base-package 指定要扫描的包--context:component-scan base-packagecom.sxs.spring.component/context:component-scan /beans6.断点查看bean对象是否创建 7.测试 //通过注解来配置beanTestpublic void setBeanByAnnotation() {//从类路径下读取配置文件ApplicationContext ioc new ClassPathXmlApplicationContext(beans05.xml);//分别获取这四个对象由于是单例的所以可以直接通过类型获取MyComponent component ioc.getBean(MyComponent.class);UserAction action ioc.getBean(UserAction.class);UserDao userDao ioc.getBean(UserDao.class);UserService userService ioc.getBean(UserService.class);System.out.println( component action userDao userService);}3.注意事项和细节 2.自己实现spring注解 1.需求分析 2.思路分析图 3.编写自定义注解ComponentScan package com.sxs.spring.annotation;import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;/*** 自定义注解用于指定要扫描的包** author 孙显圣* version 1.0*/ Target(ElementType.TYPE) //指定目前的注解可以修饰TYPE程序元素 Retention(RetentionPolicy.RUNTIME) //指定注解的保留范围在运行时可以生效 public interface ComponentScan {String value() default ; //指定注解可以传入一个String类型的值用于指定要扫描的包 } 4.编写配置类SunSpringConfig package com.sxs.spring.annotation;/*** author 孙显圣* version 1.0*/ ComponentScan(value com.sxs.spring.component) //自定义注解指定要扫描的包 public class SunSpringConfig {} 5.编写容器SunSpringApplicationContext package com.sxs.spring.annotation;import org.springframework.stereotype.Component; import org.springframework.stereotype.Controller; import org.springframework.stereotype.Repository; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils;import java.io.File; import java.net.URL; import java.util.concurrent.ConcurrentHashMap;/*** 类似于Spring原生的ioc容器** author 孙显圣* version 1.0*/ public class SunSpringApplicationContext {//传进来一个配置类的Class对象private Class configClass;//存放对象的容器private final ConcurrentHashMapString, Object ioc new ConcurrentHashMap();//构造器接收配置类的class对象public SunSpringApplicationContext(Class configClass) throws ClassNotFoundException, InstantiationException, IllegalAccessException {this.configClass configClass;//获取要扫描的包//1.首先反射获取类的注解信息ComponentScan componentScan (ComponentScan) this.configClass.getDeclaredAnnotation(ComponentScan.class);//2.通过注解来获取要扫描的包的路径String path componentScan.value();//得到要扫描包的.class文件//1.获取类加载器ClassLoader classLoader SunSpringApplicationContext.class.getClassLoader();//2.获取要扫描包的真实路径默认刚开始在根目录下path path.replace(., /);URL resource classLoader.getResource(path);//3.由该路径创建一个文件对象可使用resource.getFile()将URL类型转化为String类型File file new File(resource.getFile());//4.遍历该文件夹下的所有.class文件if (file.isDirectory()) {File[] files file.listFiles();for (File f : files ) {//反射注入容器//1.获取所有文件的全路径String absolutePath f.getAbsolutePath();//只处理class文件if (absolutePath.endsWith(.class)) {//2.分割出类名String className absolutePath.substring(absolutePath.lastIndexOf(\\) 1, absolutePath.indexOf(.));//3.得到全路径String fullPath path.replace(/, .) . className;//4.类加载器获取Class对象也可以通过Class.forName区别是后者会使类被静态初始化判断是否有那四个注解Class? aClass classLoader.loadClass(fullPath);if (aClass.isAnnotationPresent(Component.class) || aClass.isAnnotationPresent(Controller.class)|| aClass.isAnnotationPresent(Service.class) || aClass.isAnnotationPresent(Repository.class)) {//5.反射对象并放入到容器中Class? clazz Class.forName(fullPath);Object o clazz.newInstance();//默认是类名首字母小写作为keyioc.put(StringUtils.uncapitalize(className), o);}}}System.out.println(ok);}}//返回容器中的对象public Object getBean(String name) {return ioc.get(name);}} 6.测试 package com.sxs.spring.annotation;import org.junit.jupiter.api.Test;/*** author 孙显圣* version 1.0*/ public class test {Testpublic void SunSpringApplicationContextTest() throws ClassNotFoundException, InstantiationException, IllegalAccessException {SunSpringApplicationContext ioc new SunSpringApplicationContext(SunSpringConfig.class);Object myComponent ioc.getBean(myComponent);Object userAction ioc.getBean(userAction);Object userDao ioc.getBean(userDao);Object userService ioc.getBean(userService);System.out.println( myComponent userService userAction userDao);} } 3.自动装配 1.AutoWired方式 1.基本说明 2.UserDao.java package com.sxs.spring.component;import org.springframework.stereotype.Repository;/*** Repository 用来标识该类是一个dao* author 孙显圣* version 1.0*/ Repository public class UserDao {public void sayHi() {System.out.println(hi);} } 3.UserService.java package com.sxs.spring.component;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service;/*** Service 用于标识该类是一个Service* author 孙显圣* version 1.0*/ Service public class UserService {//自动装配//1.通过UserDao这个类型来匹配如果有多个实例则使用第二种方式匹配//2.通过userDao这个属性名字作为id匹配实例如果还是匹配不到则报错AutowiredUserDao userDao;public void sayHi() {userDao.sayHi();} } 4.测试 //测试autowire自动装配Testpublic void autowireTest() {//获取容器ApplicationContext ioc new ClassPathXmlApplicationContext(beans05.xml);UserService bean ioc.getBean(userService, UserService.class);bean.sayHi();}2.Resource方式推荐 1.基本说明 2.UserDao.java package com.sxs.spring.component;import org.springframework.stereotype.Repository;/*** Repository 用来标识该类是一个dao* author 孙显圣* version 1.0*/ Repository public class UserDao {public void sayHi() {System.out.println(hi);} } 3.UserService.java package com.sxs.spring.component;import org.springframework.stereotype.Service;import javax.annotation.Resource;/*** Service 用于标识该类是一个Service* author 孙显圣* version 1.0*/ Service public class UserService {//自动装配//1.通过name匹配直接根据注解的属性name来进行匹配如果匹配不到直接报错//2.通过类型匹配必须保证是单例的如果有多个实例则直接报错//3.默认先通过name属性匹配如果匹配不上则按照类型匹配都匹配不上才会报错ResourceUserDao userDao;public void sayHi() {userDao.sayHi();} } 4.泛型依赖注入 1.基本说明 1.基本介绍 2.参考关系图
http://www.pierceye.com/news/398030/

相关文章:

  • 网站功能优化的方法营销型网站建设集装箱液袋
  • 建设资讯网站厦门网站建设哪家强
  • 惠阳网站设计开发图片做多的网站是哪个
  • 医院网站建设公司价格低本地网站搭建视频教程
  • 黑客攻击的网站网站开发需要多少钱app
  • 海南建设厅评审网站织梦网站加网站地图
  • 清迈城市建设网站外贸搜索网站
  • 怎样做网站公司网站建设维护管理
  • 伊犁网站制作珠海做网站的公司
  • 乐山市规划和建设局网站房地产基础知识
  • 网站给假冒伪劣产品做推广鞍山网站制作一般需要多少钱
  • 番禺网站开发哪里好ppt模板免费下载完整版免费简约
  • 哪个公司做企业网站好济南网站优化推广公司电话
  • 深圳网站建设外包公司网站流量提供商
  • 网站建设优化服务信息wordpress下载类插件
  • 深圳做网站google推广百度优化是什么
  • 网站开发技术服务费分享经济网站怎么建设
  • 免费seo网站推广在线观看360免费wifi创建失败
  • 服装网站开发嵌入式硬件开发
  • 上海建设厅网站那些网站可以做自媒体
  • 如何查看一个网站流量网店美工课程心得体会
  • 邯郸的网站建设无锡做网站品牌公司
  • 汇编做网站门户网站建设 知乎
  • 教育云平台网站建设云南小程序定制开发
  • 企业自助建站策划方案横沥网站设计
  • 网站开发搜索功能怎么实现中小网站建设都有哪些方案
  • 学科网站建设网页制作和网页制作
  • 公司网站模板大全网站文章编辑
  • 旅游网站建设的总结wordpress多域名移动主题
  • 深圳做网站推荐哪家公司好附近广告公司联系电话