例如,在这个问题的最上面的答案中:javaee6@javax。注释。ManagedBean与@javax。注射命名vs.@javax。面孔。ManagedBean我读到:
要部署CDIBeans,必须放置一个名为bean的文件。类路径上META-INF文件夹中的xml。一旦您这样做,那么包中的每个bean都将成为CDIBean。
据说:
如果希望从JSF页面使用CDIBean,可以使用javax为其命名。注射命名注释。
我有一个这样的示例代码:
@ManagedBean
@ViewScoped
public class SignUpPage {
private User user;
@PostConstruct
public void init() {
user = new User();
}
@Inject
private UserDao userDao;
// rest of the class
据我所知,我的bean仍然是一个JSF管理的bean,它不是cdibean(或者是吗?)。顺便说一下,我有一个豆子。我的WEB-INF文件夹中的xml。
而且@Inject在这里工作得很好。此外,我还可以使用EL访问bean(这使我认为它仍然是一个JSF管理的bean)
UserDao类如下所示:
@Stateless
public class UserDao {
EntityManager em;
@PostConstruct
public void initialize(){
EntityManagerFactory emf = Persistence.createEntityManagerFactory("Persistence");
em = emf.createEntityManager();
}
所以,据我所知,这是一个EJB。。
那么在这个例子中我有CDIBean吗?@Inject在这里是如何工作的?
希望我的问题清楚,谢谢!
根据CDI规范,每个JavaBean都是托管Bean
(不要将其与JSF@ManagedBean
混淆,这是不同的一个)在Bean所在的项目中。存在xml
。因此,每个类都有资格进行依赖注入。请注意,此类的默认作用域是依赖的。
问题内容: 我正在尝试使用此命令安装Python软件包 我收到权限错误,不确定为什么。我可以使用来运行它,但是有人告诉我这是个坏主意,我应该改用virtualenv。 什么是虚拟环境?它对我有什么作用? 问题答案: 与系统Python和库一起运行会将您限制为OS提供商选择的一个特定Python版本。试图在一个Python安装上运行所有Python应用程序,可能会导致库集合之间发生版本冲突。对系统P
在我开始添加更多存储库之前,我的代码只使用一个存储库包就可以正常工作 主数据源配置类: 存储库: 服务层: 服务实施: 实体类: 其他实体和存储库已被排除在外。
Spring文档——根据经验,所有有状态bean都应该使用原型范围,而无状态bean应该使用单例范围。 因此,当您必须跨上下文一致地维护一些状态/数据时,有状态bean是必要的。说银行应用程序。您希望您的对象在各种操作(存款、取款等)中保持同步。 因此,在单例范围内,您会得到同样的事情——跨上下文的对象一致性。 那么,为什么javadoc会声明Opposite呢? 帮助!!:)
问题内容: 我正在学习EJB3,只是好奇何时可以方便地使用SFSB?当SFSB确实可以轻松解决一些复杂问题时,我找不到任何很好的示例。 实际上,我看到SLSB可以用作Web服务,这很方便。但我不知道何时使用SFSB。我只看到它的问题,因为我们应该学习一些有关它的知识,我们应该编写由批注组成的代码,其内容要少于完全注释,我们应该使用烦人的查找方法……而我们得到的任何回报都没有。 例如,我们不能使用S
问题内容: 使用动态代理的用例是什么? 它们与字节码生成和反射有何关系? 有什么推荐的读物吗? 问题答案: 我强烈推荐此资源。 首先,您必须了解什么是代理模式用例。请记住,代理的主要目的是控制对目标对象的访问,而不是增强目标对象的功能。访问控制包括同步,身份验证,远程访问(RPC),惰性实例化(休眠,Mybatis),AOP(事务)。 与静态代理相反,动态代理生成在运行时需要Java反射的字节码。