精华内容
下载资源
问答
  • 需要自定义方法: ... import org.springframework.beans.BeansException; import org.springframework.beans.factory.NoSuchBeanDefinitionException; import org.springframework.context.ApplicationContext;...

    需要自定义方法:

    package com.example.demo.util;
    
    import org.springframework.beans.BeansException;
    import org.springframework.beans.factory.NoSuchBeanDefinitionException;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.ApplicationContextAware;
    import org.springframework.stereotype.Component;
    /**
     * @author Mikey
     * @Title:
     * @Description:用于普通类也能使用Bean
     * @Email:1625017540@qq.com
     * @date 2018/12/3 21:57
     * @Version 1.0
     */
    @Component
    public class SpringUtil implements ApplicationContextAware {
        private static ApplicationContext applicationContext = null;
    
        public SpringUtil() {
        }
    
        public void setApplicationContext(ApplicationContext arg0) throws BeansException {
            if (applicationContext == null) {
                applicationContext = arg0;
            }
    
        }
    
        public static ApplicationContext getApplicationContext() {
            return applicationContext;
        }
    
        public static void setAppCtx(ApplicationContext webAppCtx) {
            if (webAppCtx != null) {
                applicationContext = webAppCtx;
            }
        }
    
        /**
         * 拿到ApplicationContext对象实例后就可以手动获取Bean的注入实例对象
         */
        public static <T> T getBean(Class<T> clazz) {
            return getApplicationContext().getBean(clazz);
        }
    
        public static <T> T getBean(String name, Class<T> clazz) throws ClassNotFoundException {
            return getApplicationContext().getBean(name, clazz);
        }
    
        public static final Object getBean(String beanName) {
            return getApplicationContext().getBean(beanName);
        }
    
        public static final Object getBean(String beanName, String className) throws ClassNotFoundException {
            Class clz = Class.forName(className);
            return getApplicationContext().getBean(beanName, clz.getClass());
        }
    
        public static boolean containsBean(String name) {
            return getApplicationContext().containsBean(name);
        }
    
        public static boolean isSingleton(String name) throws NoSuchBeanDefinitionException {
            return getApplicationContext().isSingleton(name);
        }
    
        public static Class<?> getType(String name) throws NoSuchBeanDefinitionException {
            return getApplicationContext().getType(name);
        }
    
        public static String[] getAliases(String name) throws NoSuchBeanDefinitionException {
            return getApplicationContext().getAliases(name);
        }
    }

    使用:

    package com.example.demo.util;
    
    import com.example.demo.Controller.login.JwtAuthenticator;
    import com.example.demo.Dao.userandroleandpermissionDao.HRUserDao;
    import com.example.demo.Entity.userandroleandpermission.HRUser;
    import org.apache.shiro.SecurityUtils;
    import org.apache.shiro.subject.Subject;
    
    public class MethodUtils {
    
        public HRUser findUserByToken(){
            Subject subject = SecurityUtils.getSubject();
            String token = subject.getPrincipal().toString();
            String code = JwtAuthenticator.getUsername(token);
            HRUserDao hrUserDao = SpringUtil.getBean(HRUserDao.class);//此处根据类.class来获取bean
            HRUser user = hrUserDao.findByCode(code);
            if(user != null){
                return user;
            }else{
                return  null;
            }
    
        }
    }
    
    展开全文
  • @Repositorypublic class BaseDaoImpl implements BaseDao {这是我的dao如果在service层注入的话很简单public class BaseServiceImpl implements...这样就可以了现在我想在一个普通的java注入进来改怎么写比如我...

    @Repository

    public class BaseDaoImpl implements BaseDao {

    这是我的dao

    如果在service层注入的话很简单

    public class BaseServiceImpl implements BaseService {

    @Autowired

    public BaseDao baseDao;

    这样就可以了

    现在我想在一个普通的java类中注入进来改怎么写

    比如我的普通java类是

    package com.util.page;

    public class PageUtil {

    ApplicationContext ctx = new ClassPathXmlApplicationContext("../../WEB-INF/index-servlet.xml");

    pageDao pagedao = (pageDao) ctx.getBean("pageDao");

    接下来就可以使用DAO中的方法了。

    eg:pagedao.getcount("xxx");

    }

    //pageDao类

    @Repository

    public class pageDao {

    @Resource

    private JdbcTemplate jdbcTemplate;

    public void setDataSource(DataSource dataSource) {

    this.jdbcTemplate = new JdbcTemplate(dataSource);

    }

    public int getcount(String tablename){

    .......

    }

    //index-servlet.xml

    }

    展开全文
  • 我这是定义了两个数据源工厂,在普通java怎么获得name是jahwaSessionFactory的bean呢? 1、@Qualifier("jahwaSessionFactory")使用这个Qualifier,但是不管我把这个注解放到上还是定义的变量上都不行 2、...
  • @Repositorypublic class BaseDaoImpl implements BaseDao {这是我的dao如果在service层注入的话很简单public class BaseServiceImpl implements...这样就可以了现在我想在一个普通的java注入进来改怎么写比如我...
    @Repository
    public class BaseDaoImpl implements BaseDao {
    这是我的dao
    如果在service层注入的话很简单
    public class BaseServiceImpl implements BaseService {
    @Autowired
    public BaseDao baseDao;

    这样就可以了
    现在我想在一个普通的java类中注入进来改怎么写
    比如我的普通java类是

    package com.util.page;
    public class PageUtil {

    ApplicationContext ctx = new ClassPathXmlApplicationContext("../../WEB-INF/index-servlet.xml");
    pageDao pagedao = (pageDao) ctx.getBean("pageDao");

    接下来就可以使用DAO中的方法了。
    eg:pagedao.getcount("xxx");

    }

    //pageDao类

    @Repository
    public class pageDao {

    @Resource
    private JdbcTemplate jdbcTemplate;
    public void setDataSource(DataSource dataSource) {
    this.jdbcTemplate = new JdbcTemplate(dataSource);

    }

    public int getcount(String tablename){

    .......
    }

    //index-servlet.xml

     <bean id="pageDao" class="com.util.page.pageDao"></bean>

    }





    转载于:https://www.cnblogs.com/java727/p/3149944.html

    展开全文
  • spring基于注解的普通类怎么调用@Services注解的service方法,需要一些先决条件: 1、如果你想用@autowired,那么这个类本身也应该是在spring的管理下的,即你的UserLogUtil也要标注为一个component(或Service),...
    spring基于注解的普通类怎么调用@Services注解的service方法,需要一些先决条件:
    1、如果你想用@autowired,那么这个类本身也应该是在spring的管理下的,即你的UserLogUtil也要标注为一个component(或Service),这样spring才知道要注入依赖;
    
    2、或者,不标注为@Component的话,此时不能通过@autowired来注入依赖,只能通过ApplicationContext来取得标注为Service的类:
    UserLogService service = ApplicationContext.getBean(UserLogService.class);

    展开全文
  • 今天所遇到的问题就是 ,创建了一个普通类。通过@Component注释,将这个类加入到容器中,进而进行的一些操作, 可以注入Mapper 将数据保存到数据库。 但是当我做的时候,使用@Autowired却一直报null异常,然后我...
  • 通常在spring的配置文件里向一个普通类注入属性值都能如愿以偿, 如:123或. 但是我在一个Filter过滤器类里注入类属性值,却怎么注入不进去,只能用硬编码的方式实现,很郁闷,请有经验的朋友帮帮我。...
  • JAVA普通类获取spring的bean对象

    千次阅读 2018-04-19 17:48:05
    如果在普通类里使用@Resrouce或者@Autoware这个两个注解,在使用的时候会报NEP, 因为如果本类不是springBean的话,那么注入注入失败的,而且不抱错. 那平时该怎么用呢.可以使用那个什么Context(xxx.xml).getBean()...
  • 在使用springboot框架开发的过程中,难免也会用到多线程业务处理的需求,如果是普通实现多线程,那使用我们上一篇文章中的方法就足够了。但是大部分的使用环境是是我们需要将一个注入容器的实例实现多线程,...
  • 使用Spring框架,我们不需要创建类的对象,都有Spring 容器创建,并通过注解来注入注入的原理就是在程序启动的时候,Spring根据xml中配置的路径来扫描...那么普通类怎么使用@Service标记的方法呢?1.如果你想用@autow
  • 普通类中引用spring 容器管理的bean

    千次阅读 2017-07-21 16:54:18
    今天遇到一个问题,在webservice接口中去注入spring管理的的时候出现了空指针的问题,但是呢,这个webservice并没有交给spring去做统一管理,那么要怎么注入到spring的bean呢?采用如下的方法 ...
  • 方法1:使用Spring框架,我们不需要创建类的对象,都有Spring 容器创建,并通过注解来注入注入的原理就是在程序启动的时候,Spring根据xml中配置的路径来...那么普通类怎么使用@Service标记的方法呢?1.如果你想用@...
  • //生成随机 Random random = new Random(); // 设定背景色 g.setColor(getRandColor(200, 250)); g.fillRect(0, 0, width, height); //设定字体 g.setFont(new Font("Times New Roman", ...
  • angularjs作为一个全ajax的框架,对于请求,如果页面上不做任何操作的话,在结果烦回来之前,页面是没有任何响应的,不像普通的HTTP请求,会有进度条之。 什么是拦截器? $httpProvider 中有一个 interceptors...
  • 创建一个普通的springboot项目如下:只有一个配置文件和一个启动。配置文件中只配了一个redis,配置其他组件都行,这里以redis为例展开说明自动注入。2.打开启动对于springboot来说,最强大的地方就是没有复杂的...
  • @Qualifier注解的作用

    千次阅读 2020-12-10 11:48:20
    这是普通注入用法,但是如果TestService 有多个实现呢,我怎么知道要注入哪个呢? 可以这样写,加入TestServiceImpl1和TestServiceImpl2都实现了TestService ,这样就能选择注入了 @Autowired @Qualifier(...
  • 注解使用问题

    2019-05-31 09:08:59
    spring基于注解的普通类怎么调用@Services注解的service方法, 需要一些先决条件: 1、如果你想用@autowired,那么这个类本身也应该是在spring的管理下的,即你的UserLogUtil也要标注为一个component(或Service)...
  • 介绍 这篇距上一篇已经拖3个月之久了,批评自己下。...既然是动态的,那就是未知的,怎么通过提前注入的代码获取呢! 阅读目录: 普通写法 注入定义 Weave函数 参数构造 业务编写 注入调用 普通写法 ...
  • 使用springboot集成websocket要特意去注入serverEndpointExporter关于此类我也不是很理解。我把简单理解为一种注解支持,因为springboot在打包时不会包含此类,如果是普通项目使用tomcat就不必单
  • 我还尝试过注入cmder之的,但效果还是不满意(cmder的启动速度慢到可怜。。。),于是盯上Windows Terminal这款软件了。写这篇文章花了我十几个小时去看一些文章,也推荐大家直接去看微软的教程,我只是个喜欢上wt...
  • 普通的用户将自己的密码设置为生日之的6位纯数字,这种情况还可以原谅,毕竟他们大部分都不是专门搞网络研究的,中国国民的安全意识提高还需要一段时间嘛,但如果是网络管理员也这样,那就怎么也有点让人
  • 12.普通类和抽象类有哪些区别? 13.抽象类能使用 final 修饰吗? 14.接口和抽象类有什么区别? 15.java 中 IO 流分为几种? 16.BIO、NIO、AIO 有什么区别? 17.Files的常用方法都有哪些? 二、容器 18.java 容器都有...
  • 12. 普通类和抽象类有哪些区别? 6 13. 抽象类能使用 final 修饰吗? 6 14. 接口和抽象类有什么区别? 7 15. java 中 IO 流分为几种? 7 16. BIO、NIO、AIO 有什么区别? 7 17. Files的常用方法都有哪些? 8 二、...
  • 完美学校网站系统全站源代码学校网站模板下载

    千次下载 热门讨论 2011-01-10 12:23:08
    (用户分类:注册用户[普通][高级][特级]、小管理员、大管理员、总栏管理员、文章审核员、系统管理员,超级管理员,分别拥有不同的权限。) ⑥个人资料:1、修改资料 ⑦系统信息:1、网软志成 2、关于系统 3、 ...
  • eclipse不能调试了

    2009-11-26 10:42:53
    但是调普通的Java这些功能都好好的,难道eclipse不能调试spring+hibernate?在网上搜的时候也看见有人遇到和我相同的问题,但是他们也没解决方案?不会是要重装系统在重装eclipse吧??? :x [b]问题补充:[/b] ...
  • 基于SSM的校园二手交易平台 ...完整的设计报告在后面 喜欢就点一下star哟,谢谢亲的支持 ...个人主页 ...Java版本:1.8 数据库:MySQL 框架:Spring + Spring MVC + MyBatis 服务器:Tomcat 前端解析框架:Thymeleaf ...

空空如也

空空如也

1 2
收藏数 33
精华内容 13
关键字:

普通类怎么注入